Ответы пользователя по тегу HTML
  • Как сделать, чтобы эффект blur не выходил за бэграунд?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    .main-header {
        overflow: hidden;
    }
    Ответ написан
    Комментировать
  • Как "заставить" работать stroke-dashoffset?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Дело в том, что в браузере firefox не работает свойство stroke-dashoffset

    Если добавить единицы измерения, то начинает работать:
    stroke-dashoffset: calc(440px - (440px * 90) / 100);
    Ответ написан
  • Обтекание текстом фиксированного блока?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    На CSS такое обтекание никак не сделать. Но можно пойти одним весьма хитроподвывернутым способом - продублировать текст и скроллить два блока с контентом одновременно. Как в этом примере, только в одной плоскости, без "перевернутой" трансформации:



    Это позволит сделать плавное движение, без рывков при перестроении элементов в DOM-дереве.
    Ответ написан
    3 комментария
  • Как сверстать эту магию?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Вариант, предложенный Максим Ленский не адаптивный и ломается при изменении контента, так что предложу свой.

    Треугольники можно было упустить, не в них суть)


    Ну ну совсем так. При верстке таких сайтов важно сохранять контекст, в котором был дизайнер (если с ним есть контакт, то лучше все обсудить с ним, но в нашем случае пример в вакууме, так что думаем сами). Конкретные размеры обычно не так важны, как контекст. Здесь его задает равномерная линия между треугольниками и ее важно сохранить. Исходя из этого соображения нужно посчитать, какого размера должны быть треугольники, чтобы все влезало и "было красиво", учитывая, что высоты всех блоков могут меняться. CSS у нас не дает возможности делать вычисления исходя из высоты соседних элементов, так что придется добавить щепотку JS. Ну а дальше - дело техники.

    5e202e499c905300447523.png

    codepen.io/sfi0zy/pen/zYxJNmG.
    Ответ написан
    5 комментариев
  • Периодическое мерцание элементов?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    В postcss-trolling есть готовая CSS анимация под вашу задачу. Нужно лишь задать разный animation-delay элементам (возможно с помощью :nth-of-type или :nth-child).
    Ответ написан
  • Проблемы с анимацией в Safari?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    на айфонах

    caniuse.com/#feat=css-animation:
    iOS 6.1 and below do not support animation on pseudo-elements. iOS 7 and higher are reported to have buggy behavior with animating pseudo-elements.


    Обе лагающие анимации как раз связаны с псевдоэлементами. Имеет смысл их заменить на обычные div-элементы.
    Ответ написан
    1 комментарий
  • Оцените пожалуйста вёрстку(2)?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Замечание номер раз: код минифицирован, не смотрел.
    Замечание номер два: макеты не видел, возможно местами накосячил дизайнер.

    Беглый просмотр дал следующее:

    №1:
    - Шрифтыыыы... Arial - это боль. Вы, вероятно, забыли подключить нужный шрифт
    - Иконки социальных сетей слишком маленькие, сложно попасть, можно поболее сделать
    - Две иконки одинаковые, нехорошо, путает
    - В поле для поиска серым по серому написано - не видно
    - Гамбургер есть, но что он делает - не понятно
    - В карусели, при нажатии на точки появляется ненужный outline
    - В поле для поиска иконка съехала
    - Размер шрифта в одинаковых элементах скачет
    - Вертикальные отступы скачут
    - При адаптиве картинки плющатся
    - Какие-то ошибки в консоли

    №2
    - Такое впечатление, что навигация и текст под ней выровнены не по левому краю
    - Так и хочется, чтобы кнопка с рыжей границей при наведении стала вся рыжей, как это обычно и делают
    - Выпадающая выбиралка языка и валюты пропадает, ее нельзя использовать мышкой
    - Два поля для поиска на одном экране? Хотя это косяк дизайнера, ладно
    - Какие-то иконки с сердечками, вопросиками и.т.д. Нужно по крайней мере добавить всплывающие подсказки, что это вообще такое
    - Плюс и минус подсвечиваются как одна кнопка
    - Интерактив никакой не работает, нужно доделывать
    - Имеется непостоянство в подсвечивании элементов при наведении
    - Скидки в 70%, круто! Эээ.. А где тут кнопка "показать товары со скидкой"?
    - Внезапный шрифт с засечками
    - Внезапные серые бордеры, когда только что в такой же секции их не было
    - Вертикальные отступы опять везде пляшут
    - Белый по желтому не читается
    - Опять внезапное выравнивание влево, когда только что в такой же секции было по центру
    - Подпишитесь на рассылку! Ввожу почту и понимаю, что кнопки "подписаться" там нет. Fail.
    - На телефоне в подвале все выравнивание скачет влево-вправо

    Совет номер раз: почитайте про дизайн для недизайнеров и книги от Nick Kolenda, чтобы лучше понимать, где что-то явно не так и имеет смысл поправить.

    Совет номер два: старайтесь все в коде приводить к единой системе, чтобы одинаковые вещи действительно были одинаковыми. Этому способствуют препроцессоры и введение переменных с основными размерами + миксины для эффектов. Системная верстка всегда оставляет лучшее впечатление, чем бессистемная.

    Совет номер три: изучайте JS и доделывайте интерактивные элементы, чтобы ими можно было пользоваться. Не стоит это дело откладывать в черный ящик, работодателям чисто верстка без скриптов нужна очень редко.
    Ответ написан
    1 комментарий
  • Как сделать canvas в качестве фона для div?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    канвас добавить в качестве фона для div + background-size: cover

    Проверьте правильность позиционирования этого фона, может он у вас съехал куда-то и вы его не видите. Плюс не забывайте, что у png есть прозрачность, и, если канвас закрашен не полностью, а вы используете лишь его часть, то сложится впечатление, что на фоне ничего нет, хотя там что-то есть.

    Ответ написан
    Комментировать
  • Перестал срабатывать слайдер на клик, почему?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Все работает, просто вы полоску сделали слишком маленькой и по ней сложно попасть. Сделайте ее побольше:
    .irs-line {
        /* height: 2px; */
        /* background: #bababa; */
        height: 22px;
        background: 0 0 / 100% 2px linear-gradient(to right, #bababa, #bababa) no-repeat;
    }
    Ответ написан
    Комментировать
  • Интерактивная карта на сайте. Как правильно поступить с координатами?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Вы можете в графическом редакторе переместить и масштабировать всю свою карту в SVG так, чтобы она была грубо говоря не от 0 до 100 (или какая она у вас там) по горизонтали, а от 19 до 169 (вроде бы, не силен в географии). И по вертикали так же подвинуть. И исходить из соображений, что координаты X/Y в SVG буквально равны нашим обычным координатам по широте и долготе. На восток и север - в плюс, на запад и юг - в минус. А перемещение на экране и масштабирование можно сделать с помощью атрибута viewbox, меняя его по ходу дела. Если вы руками рисуете, то таким образом можно получить точность в 1/4 градуса без умственных усилий, просто представив циферблат (0'/15'/30'/45' -> 0/.25/.50/.75), так что думаю, что для ваших задач, где точность не столь важна, это вполне подойдет.
    Ответ написан
    2 комментария
  • Как зарезервировать место для отзывчивого изображения?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Делать временные заглушки/плейсхолдеры (называйте как хотите) для картинок с теми же пропорциями. Удобно для этих целей использовать SVG - если сервер знает размер картинки, то можно сгенерировать прямоугольник и вставить SVG с ним в то место, где должна быть картинка, а потом саму картинку абсолютным позиционированием положить на нее сверху. Имеет смысл эти заглушки генерировать заранее (один раз) для загружаемых на сервер картинок. В некоторых случаях можно еще сильнее заморочиться и сделать все не только функционально, но и красиво.
    Ответ написан
    Комментировать
  • Почему появляются отступы вверху и внизу изображения?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Это один из багов отображения SVG-картинок во flex-контейнерах. Это вообще больная тема, там эти картинки то схлопываются по ширине, то получают странные отступы в отдельных браузерах. Можно решить, обернув картинку в div с явным указанием display=block для него:

    <div class="test">
        <img src="https://123.svg"/>
    </div>


    .test {
        display: block;
    }
    Ответ написан
    1 комментарий
  • Как сделать такой селектор в css?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    В черновиках Selectors Level 4 есть мысль о псевдоклассе :has, который мог бы дать возможность проверять такие связи и писать что-то вроде
    .tab-position:has(> .pinned) {
        /* . . . */
    }

    но на сегодняшний день ни один браузер это не поддерживает. Так что нет, такой селектор в CSS сделать пока нельзя.
    Ответ написан
  • Как сделать с помощью css или js наложение картинки на 3Д объект, чтобы в итоге получилось именно так?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    с помощью css

    Ответ написан
    Комментировать
  • Как пофиксить закрытие меню при наведении сохранив отступ между подменю и меню?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Как вариант:
    ul.sub-menu::before {
        content: '';
        position: absolute;
        width: 100%;
        height: 35px;
        top: -35px;
        left: 0;
    }
    Ответ написан
    Комментировать
  • Почему не работает first-child для первого элемента?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    first-child -> Ничего не происходит.
    nth-child(2) -> работает, но первый элемент считает как второй

    Ну давайте посчитаем:
    <div class="row">
        <div class="col-6">...</div> <!-- Первый -->
        <div class="col-2 px-0 outer_box">...</div> <!-- Второй. Определенно второй. -->
        <div class="col-2 px-0 outer_box">...</div> <!-- Третий -->
        <div class="col-2 px-0 outer_box">...</div> <!-- Четвертый -->
    </div>

    Возможно вам стоит еще разок почитать, как работают все эти псевдоклассы.
    Ответ написан
  • Как сделать анимацию логотипа?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Скажите, насколько реально сделать эти два варианта с помощью CSS, или для этого нужно использовать другие какие-то технологии/программы?

    На CSS только плоская карта получится. Надпись можно было бы соорудить с помощью большого количества элементов и 3d-трансформаций, но результат будет очень грубым. Так что WebGL в таких задачах - наше все.

    Запустить крутиться планету

    Все не так уж и сложно - одна сфера, одна текстура. Пример можно посмотреть в статье про трехмерные презентации на Three.js, там все то же самое, только в вашем случае сфера маленькая. Ну а поворачивать землю немного каждый кадр - это даже не задача.

    запустить надпись "Мир принадлежит тебе", тоже с прокруткой в левую сторону вокруг планеты

    Юрий Артюх в одном из стримов делал как раз такую вращающуюся надпись. Очень прикольно получилось, стоит посмотреть.

    P.S.: А еще всегда есть ход сусликом (про которого все забывают, но он есть) - сделать гифку и использовать ее, а не приплетать кучу скриптов для одной маленькой анимированной штучки.
    Ответ написан
    1 комментарий
  • Почему пропадает текст в em?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Что такое 1em? Это текущий размер шрифта. Когда вы задаете размер шрифта в единицах em, браузер считает этот размер относительно родительского размера шрифта. Но у html вы задаете font-size равный 0px. В данном случае это означает, что у всех потомков 1em будет равен нулю до тех пор, пока вы не зададите какое-то другое значение не в em/rem, тогда у потомков того элемента 1em будет равен заданному значению.

    P.S.: Задавать font-size равный нулю для html - это не лучшая идея, она может приводить к самым разным багам, а также проблемам, когда у пользователей в браузере настроены ограничения на размер шрифта для html.
    Ответ написан
    1 комментарий
  • Можете покритиковать верстку начинающего?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    С первого взгляда видно:

    1. Font-size в 1px для HTML, а потом все в REM? - интересное начало...
    2. CSS-методология? - отсутствует.
    3. Препроцессор для облегчения жизни? - отсутствует.
    4. Все в одном файле? - да, так и есть.
    5. Магические числа в CSS? - много.
    6. Префиксы прямо в коде? - ага.
    7. 21 брейкпоинт для такой простой страницы? - ежик...
    8. Шрифты? - Fira отвалилась. Letter-spacing скачет.
    9. Critical CSS? - отсутствует.
    10. Бесполезные условные комментарии для IE6, гриды и флексы в одном флаконе? - о дааа.
    11. HTML lang='ru' и контент на английском? - почему бы и нет.
    12. Грузить весь FontAwesome ради пары иконок? - классика.
    13. Асинхронная загрузка картинок? - отсутствует.

    Продолжать можно долго. Рекомендации можно дать следующие:

    1. Освойтесь с инструментами верстальщика. Откройте для себя препроцессоры и автопрефиксер. Почитайте про БЭМ. Используйте.
    2. Добейтесь такого, чтобы вы понимали абсолютно все в своей верстке. Что? Зачем? Почему именно так? Избегайте копипасты. Не используйте какие-то "фишки" только потому, что кто-то их где-то поиспользовал - вполне вероятно, что там был другой контекст, а в вашей ситуации получится что-то странное. Разбирайтесь со всем.
    3. Изучайте хорошие практики.
    4. Ну и JS, без него никак.
    Ответ написан
    2 комментария