Ответы пользователя по тегу 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
    Обычно задача ставится в обратную сторону - определяется список браузеров и потом код проверяется на наличие в нем неподдерживаемых в этих браузерах свойств. С этим отлично справляется doiuse.
    Ответ написан
    Комментировать
  • Есть ли возможность устанавливать плагины css и пользоватся ими без ручного редактирования gulpfile?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Однако целых 20 плагинов каждый раз вручную вписывать

    Так не нужно каждый раз конфиги заново делать. Более продуктивно сделать их один раз и использовать потом во всех проектах (может быть с минимальными изменениями). Это помимо экономии времени даст бонус в виде интуитивного понимания того, какие трансформации есть в конкретном проекте. Если делать каждый раз новый набор руками, то легко самого себя запутать и потом тратить время на "вроде вчера работало, а сегодня - нет", когда какие-то плагины потерялись. Также не забывайте, что можно хранить настройки PostCSS не в Gulpfile, а в отдельном файле - это может быть удобно (как пример).
    Ответ написан
  • Как называется или как сделать такой эффект?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Они используют CSS-градиенты и свойство backgrond-clip:
    5d6fafa56ad05473523050.png
    А перемещают эти градиенты нехитрой анимацией:
    5d6fb22c255d7506444602.png
    Также это можно делать на SVG-масках. Будет более кроссбраузерно.
    Ну и на канвасе можно, по тому же принципу, что и с масками.
    Ответ написан
    4 комментария
  • Можно ли такое сверстать с помощью CSS и может JS?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Может быть какой-нибудь piechart на максималках?)

    Это не труъ. Настоящие верстальщики делают такие штуки на чистом CSS. А если лениво или времени нет - вставляют в страницу большой картинкой. На самом деле в верстке может быть смысл, если нужна адаптивность - не всегда, но часто ее может быть проще сверстать, чем на лету подгружать разные картинки в зависимости от изменяющегося размера экрана.

    Набросал вам примерчик, думаю раскрасить его градиентами вы уже сами сможете:
    Ответ написан
    1 комментарий
  • Как сделать беспорядочное движение элементы?

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

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

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

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

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

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

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

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

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    в большинстве других браузеров просто не работает

    Как вариант всегда есть полифилы, например вот этот.

    какие есть альтернативные методы

    Поговорить с дизайнером и поменять поведение элементов на странице.
    Ответ написан
  • Как оптимизировать запись SCSS?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Смущает класс ".list__link"

    Если вас смущает повторение list в названии класса, то можно воспользоваться сохранением имени в стиле that=this из javascript:

    .list {
        $b: &;
    
        &__item {
            &:first-child {
                #{$b}__link {
                    // . . .
                }
            }
        }
    }

    Но это сложно назвать более читаемым вариантом.

    Если цель - все же сделать код более удобоваримым, то может иметь смысл просто ограничить вложенность при написании стилей (именно визуальную вложенность кода, а не каскад), как это делают в том же rscss:

    .list {
        &__item {
            // . . .
        }
    
        &__link {
            // . . .
        }
    
        &__item:first-child &__link {
            // . . .
        }
    }
    Ответ написан
    1 комментарий
  • Как добиться нормальной тени у элемента?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    А почему бы не использовать обычную feDropShadow?
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
      <defs>
        <filter id="shadow">
          <feDropShadow dx="0" dy="4" stdDeviation="2" flood-color="grey" />
        </filter>
      </defs>
      <polygon points="30.1,84.5 10.2,50 30.1,15.5 69.9,15.5 89.8,50 69.9,84.5"
               filter="url(#shadow)" fill="hsl(156,80%,50%)"></polygon>
    </svg>
    Ответ написан
    1 комментарий
  • Как сделать CSS рабочим у сайта wordpress?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Блоки с классами man, woman и kid должны быть рядом с инпутами, в той же обертке. Вот так:
    div
        input
        label
        input
        label
        .man
        .woman
        .kid

    а не вот так:
    div
        input
        label
        input
        label
    .man
    .woman
    .kid
    Ответ написан
    1 комментарий
  • Как сделать анимированную смену фильтров css?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Попробуйте использовать одинаковые наборы функций, но с разными значениями:
    .filters {
        filter: grayscale(0.85) sepia(0%) brightness(1);
    }
    
    .links-item:hover .filters {
        filter: grayscale(0) sepia(40%) brightness(0.55);
    }
    Ответ написан
  • Как реализовать анимацию одного элемента по мере прокрутки страницы?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Задача разделяется на две:
    1. Анимировать саму линию
    2. Перемещать огонь по ней

    Под первую задачу так и напрашивается SVG (статья про пунктирные вау-эффекты). Ну а решение второй вытекает из первой, достаточно загуглить "перемещение объекта по path" или еще что-то в этом духе. Получаем что-то такое (код немного странен, я другой пример перевернул вверх дном, но идея должна быть понятна):


    Остается только приделать монитор нарисовать огонь, но это уже другой вопрос.
    Ответ написан
    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 комментария
  • Как такое сверстать?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Все в одну картинку - не универсально, тем более, что сверстать не сложно.
    Первый пример - один круг с градиентом, второй - белый, сверху.
    Второй пример - тот же круг с градиентом, и перекрыть ему половину. На мой взгляд варианты с большим количеством бордер-радиусов могут ломать мозг, но тут на вкус и цвет...
    Ответ написан
    Комментировать
  • Как возможно реализовать столь похожее или такое же меню?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Да, симпатичная штука. Как говорится, ябзаверстал. Да и показаться на первой странице CodePen с такой демкой тоже будет не лишним. Так что вот вам концепт для изучения по мотивам вашего видео:

    В разных браузерах не тестировал, это скорее пример, чтобы показать подход к решению задачи. Рекомендую смотреть на большом экране - версия только для десктопа.
    Ответ написан
    Комментировать
  • Можно ли получить по шапке используя !important в проекте?

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