Ответы пользователя по тегу CSS
  • CSS размыть div?

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

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Алгоритм примерно такой:
    - Берем обычный canvas, на нем что-то пишем или выводим картинку (в данном случае строго 2 цвета).
    - Берем imageData у того, что получилось.
    - Проходим по всем пикселям этой imageDatы с каким-то шагом, делаем объект "частица" с нужными координатами когда цвет соответствует определенному (если писали черным по белому - значит если цвет пикселя черный).
    - Стираем надпись.
    - Проходим по массиву частиц, рисуем небольшой круг (что угодно, но пусть будет круг) на месте с координатами этой частицы.
    - PROFIT.

    По вкусу к частице добавляется параметр "цвет" (лучше полупрозрачный) и "размер". Можно сделать функцию обновления, которая будет менять эти параметры и координаты, requestAnimationFrame нам в помощь. Координаты частицы меняются по определенному закону в каком-то радиусе от ее изначального положения, можно взять параметрическое уравнение любой замкнутой кривой и использовать его для вычисления отклонения частицы от ее изначального положения.
    Ответ написан
    Комментировать
  • Как сделать обратную анимацию распада с использования css или javascript (Pixel Dust)?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Вот как-то так (кроссбраузерность не проверял, но должно работать IE11+).
    59d5e110e70d2375505477.gif
    По-хорошему стоило бы нарисовать точки в виде SVG-картинки и анимировать ее части, а не div элементы, как я сделал, но общая концепция должна быть понятна. Поведение с опцией hidden можно заменить на :hover у вашей кнопки.
    Ответ написан
    1 комментарий
  • Как сделать такой hover эффект?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    background:
        linear-gradient(135deg, transparent, rgba(255,255,255,.1)),
        linear-gradient(to top, #999,  transparent),
        linear-gradient(to left, #999, transparent);
    background-repeat: no-repeat;
    background-position: top left, top right, bottom right;
    background-size: 100% 100%, 1px 100%, 100% 1px;

    59d3401b85c87840054203.pngcodepen
    Ответ написан
    2 комментария
  • Какие есть плагины анимации элементов?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Возьмите animate.css и добавляйте нужные классы к элементам. Или, что еще лучше, достаньте из нее только необходимые вам анимации (postcss-animation может это дело автоматизировать) или посмотрите идеи в исходниках и сами их напишите, чтобы не тащить всю библиотеку ради пары десятков строк. Если хотите что-то совсем кастомное и необычное - идите на codepen, смотрите идеи там и адаптируйте под свои нужды. Тут главное не переборщить, все-таки сильно нестандартные или длинные анимации интересны первые пару-тройку раз, потом начинают раздражать.
    Ответ написан
    Комментировать
  • Как реализуется подобный hover?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Идея примерно такая:
    span {
        background: linear-gradient(to right, #ccc 0%, #ccc 50%, #fff 50%, #fff);
        background-size: 200% 100%;
        background-position: 100% 0;
        transition: background-position .5s cubic-bezier(.56,.08,.42,.7);
    }
    
    span:hover {
        background-position: 0 0;
    }


    codepen
    Ответ написан
    Комментировать
  • Как использовать em применительно к font-size?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    я имею в виду, чтобы при уменьшении окна, шрифт также уменьшался.

    Почитайте вот эту статью.
    Ответ написан
    Комментировать
  • Как сверстать блок из PSD? Точнее, как реализовать?

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

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Демка, от которой вы можете оттолкнуться. Она была сделана для другого вопроса, но суть одна и та же.
    Ответ написан
    1 комментарий
  • Как делать отступы по макету?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Это по какой-то системе делается или дизайнер просто так по красоте на глазок подбирает отступы?

    Эта система в народе называется стайлгайд. В долгоживущих проектах иметь его в оформленном виде очень полезно. В нем есть и все размеры, и все цвета, и шрифты, а часто и компоненты по отдельности. Если у вас есть стайлгайд - то вы работаете по нему, макет страницы - это скорее для понимания "что в какое место поставить". Он может быть кривым/косым, хоть на бумажке нарисованным.

    Надо ли именно такие отступы соблюдать или можно, например, просто в бутстраповский контейнер запихнуть секцию и не париться?

    А вот если у вас нет стайлгайда и при этом кривой макет, то стоит спросить дизайнера/заказчика об этом и действовать исходя из их объяснений. Единственное, что стоит серьезно обсуждать - так это ситуацию, когда заказчик хочет pixel-perfect, до дизайнера уже не достучаться, а весь макет кривой настолько, что аж в глазах рябит. Там нужно или увеличивать сроки и цену или убеждать, что плюс-минус пара пикселей не имеют великого смысла и вы выиграете и по срокам и в перспективе при поддержке всего этого.
    Ответ написан
    Комментировать
  • Какую библиотеку для анимации вы используете постоянно?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    На постоянной основе - anime.js или делаю анимации на CSS, иногда использую D3.js.
    Ответ написан
    Комментировать
  • Есть ли какие-то преимущества в разделении кода для одного селектора на части?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Если вопрос о компонентах - то скорее всего особой пользы от такого не будет. Если о каких-то глобальных вещах (даже вы сразу приводите пример с html) - может иметь смысл деление глобальных стилей на смысловые части: стандартная нормализация (например normalize.css), дополнительная нормализация (например дать всему box-sizing: border-box), все, что связано с текстами (размеры, шрифты), хаки и куски полифилов, которые со временем было бы хорошо убрать и.т.д. В случае крупного проекта вы можете думать не селекторами, а смысловыми группами - это не обязательно, но довольно удобно.

    Ну и, разумеется, есть вариант "10 фрилансеров, каждый что-то добавил, получилось чудовище франкенштейна - куча швов и заплаток, но вроде работает". Там никакого смысла не будет, просто "так получилось".
    Ответ написан
    1 комментарий
  • С какими проблемами сталкиваетесь при flexbox верстке и как их решаете?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Cобственно проблемы описаны тут. Решения там тоже описаны. Также проблемы решаются ограничением использования флексбоксов (дабы не мучать свой мозг и не тестировать каждый чих во всех браузерах). Ну и postcss-flexbugs-fixes в составе postcss-fixes тоже лишним не будет.
    Ответ написан
    Комментировать
  • Есть реально адаптивные/responsive - вплоть до 4k (широкие экраны) шаблоны?

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

    Это бизнес. Ничего личного. Условно, если у сайта менее 0.5% пользователей сидит с телевизоров или с часов, то дешевле положить на них болт, чем адаптировать. Серьезные компании могут заплатить UI дизайнеру, UX дизайнеру (а то и целой команде), верстальщику, купить им несколько телевизоров, умные часы, провести несколько юзабилити-тестирований, потратить на все это кучу денег. А компаниям с небольшим отделом разработки это выльется в годовой бюджет этого отдела и никак не окупится.
    Ответ написан
    Комментировать
  • Оцените верстку?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Что нужно поправить?

    Доступность. В частности вопросы контрастности элементов. Если вам дизайнер дает такую бяку - вы просто обязаны его поправить. В частности состояния элементов:
    3ff17e1ab4c746688fe4bd419db67e62.pngc9145b0046004608bf1cdeef99826c45.png
    Вы видите разницу? А она есть. Мы с вами может и заметим ее, но пользователь - нет.

    С фокусом вообще все печально, нормально протабать страницу нельзя - фокус улетает в неизвестном направлении и пол страницы пребывает где-то там. Ну и синенькие рамочки - не комильфо.
    Ответ написан
  • Как исправить кучу ошибок цсс в валидаторе?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Как исправить кучу ошибок цсс в валидаторе?


    Тут вопрос не в том, как исправить, а в том, что исправить. Префиксы, как вы понимаете, нам нужны в любом случае. Меняем настройки валидации, чтобы не обращать на них внимание:
    9d365b5f13ea4505a0f5ffbb674078a3.png

    Имеем 9 ошибок с вашего сайта. Из них (с повторениями, -webkit-min-device... не считаем):
    - Property user-select doesn't exist : none - это свойство из черновика CSS4. Все ок.
    - Property touch-action doesn't exist : pan-y - относится к спецификации Pointer Events, а не CSS. Все ок.
    - Value Error : cursor hand is not a cursor value : hand - вот тут ошибочка, cursor: hand не бывает.
    - Value Error : margin-top Unknown dimension 10px\9 - что-то тут не так со значением отступа.

    Последние две ошибки стоит поправить, на остальное можно забить.
    Ответ написан
    1 комментарий
  • Как применить стиль к прямым потомкам?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Как сделать чтобы слова "Первый" и "Второй" были красным цветом, но при этом Потомок 1 и Потомок 2 оставались черным.

    Можно сделать по-простому:
    ul {
        color: #f00;
    }
    
    ul ul {
        color: #000;
    }


    Но в перспективе предпочтительнее отойти от использования подобных селекторов и прийти к бэм или какой-нибудь еще методологии.
    Ответ написан
  • Display обнуляет любую анимацию через transition?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Используйте
    visibility: hidden;
    pointer-events: none;

    вместо display: none;
    и
    visibility: visible;
    pointer-events: auto;

    вместо display: block;

    Анимация будет работать так, как вы описали. Pointer-events отключается для того, чтобы скрытый элемент не мешал наведению и кликам по элементам под ним (если он будет абсолютно позиционирован или перемещен и что-то окажется снизу).
    Ответ написан
    Комментировать
  • Как интерпретировать математический код из LESS в SASS?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Посмотрите на mathsass - там реализованы все эти функции.
    Ответ написан
    Комментировать