Ответы пользователя по тегу CSS
  • Можно ли получить по шапке используя !important в проекте?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Такие вопросы должны решаться на уровне методологий. Начиная проект мы решаем, какую использовать, и потом ее придерживаемся. Например в rscss !important используется в классах-хелперах, которые изначально задуманы, чтобы перебивать стили. Их обычно немного, они вписываются в общую картину и очень удобны при быстром прототипировании. А в какой-нибудь другой методологии !important могут вообще не использовать, приводя вполне разумные аргументы почему принято такое решение. Так что тут на вкус и цвет фломастеры разные, а запутать код можно и без !important.
    Ответ написан
    Комментировать
  • Почему github pages не видит шрифты, подключаемые через @font-face?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    В чем может быть проблема?

    В том, что названия файлов у вас с большой буквы начинаются, а в CSS вы их пишете с маленькой.
    Ответ написан
    Комментировать
  • Как реализовать верстку с обтеканием?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    1. Расположить элементы так, как на картинке, проще всего заданием width, float и clear для них. И это логично, флоаты как раз предназначены для всевозможных обтеканий.
    2. Чтобы отступы между картинкой и текстом не скакали, была ровная сеточка, а строки в разных блоках совпадали по вертикали, имеет смысл жестко привязать ее (картинки) высоту к EM/REM. Вообще удобно все к этим единицам привязывать, но это уже другая история.
    3. Исходя из пункта 2, нужно добавить media-выражения для картинки на разные размеры экрана. Да, это лишняя работа. Да, это не чик-чик и в продакшен, но если важны мелочи в дизайне - делаем.
    4. На маленьких экранах все это будет плохо восприниматься, так что выстраиваем элементы в столбик. Ширина в 100% всему. По уму контент важнее, чем aside, так что меняем их порядок с помощью свойств flex, flex-direction и order.

    Получится что-то такое:

    Ответ написан
    1 комментарий
  • Как уменьшить размер шрифта при уменьшении размера окна?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Видимо вам нужно привязать размер шрифта у элемента html (он же :root в нашем контексте) к единицам vw и сделать из этого шлюз. Есть хорошая статья по теме. А уже потом использовать единицы rem в компонентах. Таким образом вслед за размером шрифта у html будут меняться размеры шрифтов везде. Так же можно использовать эти же единицы rem везде, где размеры элементов по смыслу связаны с размером шрифта.
    Ответ написан
    Комментировать
  • Какую сетку использовать?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Только изучаю верстку. И думаю что использовать для адаптивности, готовую сетку или делать свою.

    Посмотрите на готовые сетки. Сделайте свою. Это не сложно. Это не то, что нужно "делать". Сетка - это чуть ли не самое простое, что вообще у нас в верстке есть. Использовать свою или чужую - не важно. Важно - понимать, какие задачи она решает.

    И есть еще один момент: вписывается ли конкретная сетка в конкретный проект. Например мне нравится вот эта сетка. Я ее часто использую, она простая, удобная, очень похожа на тот же flexboxgrid, но с классами в духе rscss. Все круто. Но в проект, где используют БЭМ, я ее не принесу, как бы она мне не нравилась. Просто она туда не впишется. Или если нужна поддержка старых IE - там без флексов она не будет работать. Или может быть дизайн, требующий семь брейкпоинтов. Или 11 колонок. Всякое в жизни бывает. И идеально подходящая в одних ситуациях сетка совершенно не подойдет в других. Нет универсального варианта для всех возможных проектов.
    Ответ написан
    Комментировать
  • В чем может быть проблема анимации на mac OS?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Сразу бросается в глаза, что при скролле вы анимируете свойство top. При переходе между страницами в скриптах происходят постоянные обращения к свойствам inner*/outer*/offset*/client* (все минифицировано, не разобрать) а также изменения значений left, height и, возможно еще чего-то. Это все вызывает множественную перестройку макета страницы и проблемы с производительностью. Рекомендую почитать статью по теме.
    Ответ написан
    Комментировать
  • Создает ли нагрузку css градиент?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    В теории:

    В процессе работы анимации со свойством background-position постоянно происходит полный цикл всего, что только может происходить при отображении страницы:

    fblbnrk5cdwptagicpqspwlawku.png

    Иными словами нагрузка есть, да.

    На практике:

    На среднем железе один такой цикл занимает меньше 1ms. Это не много. Это не то, что будет создавать "ощущение тормозов" у пользователя. Если поделить 1000ms на 60fps, то получится где-то ~16.5ms на кадр. Соответственно, если бы анимация занимала к примеру 30ms, то мы бы глазами видели лаг. Если анимация занимает ~10-12ms, то у устройства еще остаются ресурсы на работу остальных скриптов, общение с сервером и.т.д. и мы видим шустро работающую страницу. А в вашем случае она занимает меньше 1ms, так что нет каких-то весомых причин отказываться от нее. Не занимайтесь преждевременной оптимизацией.
    Ответ написан
    Комментировать
  • Как сделать круговую диаграмму?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Атрибут stroke-linecap='round' у элемента path как раз сделает такие закругления на концах. А сам path по окружности можно сделать как в этом ответе на SO.
    Ответ написан
    Комментировать
  • Как сделать вот такие стрелки для ul списка. Как на примере?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Ответ написан
    Комментировать
  • Как сделать такое подчеркивание текста?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    span {
        background: linear-gradient(to bottom,
            transparent 0%,
            transparent 50%,
            #ff0 50%,
            #ff0 100%);
    }
    Ответ написан
    4 комментария
  • Как наложить текст на картинку?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    .category-desc {
        position: relative;
    }
    
    .page-header.item-title {
        position: absolute;
        bottom: 60px;
        left: 10px;
    }
    Ответ написан
    Комментировать
  • Как решить проблему со сменой цвета элемента на фоне другого цвета при скролле?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Если нужно именно такой частичный переход сделать, да еще и кроссбраузерно, то можно отталкиваться от следующего подхода:
    • Есть несколько секций с overflow: hidden
    • Иконки дублируются в каждой секции, но с разными цветами
    • В процессе скролла двигаем иконки, чтобы они оказывались на одном и том же месте относительно экрана

    Прототип для изучения:

    Вариант сделать это на position: fixed - не вариант, т.к. в сочетании с overflow: hidden может происходить неведомая магия.
    Ответ написан
    Комментировать
  • Как правильно реализовать анимацию?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Если речь про CSS-анимации, то да, display: none в большинстве случаев не вариант. Можно вместо него использовать сочетание visibility: hidden и pointer-events: none, а вопрос занимаемого пространства решать уменьшением высоты до 0 к примеру (но это уже зависит от того, что у вас там за анимация, по тексту этого не понять).
    Ответ написан
  • Как можно реализовать подобную анимацию?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    В базовом варианте - в сам момент появления фоновой картинки у нее изменяются свойства transform: scale (уменьшаем размер), filter: blur (уменьшаем размытие) и opacity (либо делаем появление этой картинки, либо уход предыдущего фона с прелоадером). Затем плавно меняется transform: translate в зависимости от положения мыши или еще чего-то (на видео видно, что все немного "едет"). Главная опасность, которая может поджидать - это плохая производительность CSS-фильтров, так что все может немного подлагивать.

    По-хорошему, конечно, это все стоило бы написать на шейдерах и вместо transform: translate прикрутить что-то вроде fake3d, но это уже совсем другая история...
    Ответ написан
    Комментировать
  • Кто сталкивался с версткой такого типа макета?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Забудьте... дизайнер просто демон... посылайте нафиг дизайнера...

    О да, люблю эти комментарии. Набросал тут небольшой прототип:


    В браузерах особо не проверял, только Chrome и FF, но вроде в современных должно работать.
    Ответ написан
    6 комментариев
  • Как расположить элементы?

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

    В современных браузерах должно работать, но если у вас IE - печалька.
    Ответ написан
  • Почему на маке верстка прыгает?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Посмотрел в хроме под линуксом. У вас там в целом с версткой не все ок - большой заголовок всегда скрыт под фиксированным меню. Его просто не видно и доскроллить до него по определению не получится. У вашего клиента видимо стоит какой-то плагин, который позволяет прокручивать страницу больше, чем это задумано (для красивого плавного торможения) и получается, что он успевает немного увидеть этот скрытый заголовок. Стоит добавить что-то вроде
    .main {
        padding-top: 100px;
    }

    чтобы вывести его из-под меню.
    Ответ написан
    Комментировать
  • Картинки на сайте принимают в inline - style-height: auto за место фикс высоты из css?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Значение height: auto для картинок добавляет вот этот скрипт (смотрите в функции response_layout).
    Ответ написан
  • Как можно анимировать данные псевдоэллементы?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    С квадратом еще можно было бы пошаманить с градиентами, но "нарисовать" круг из одного псевдоэлемента на CSS не получится. Так что вам стоит смотреть в сторону SVG и анимирования свойства stroke-dashoffset. Почитать про это можно в статье.
    Ответ написан
    Комментировать
  • Как сделать такой Border?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    3 комментария