Ответы пользователя по тегу CSS
  • SVG и анимация - как собрать в кучу и сделать?

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

    Рисуете эти линии в векторном графическом редакторе (каждую по отдельности); затем действуете по принципу, описанному в этой статье, чтобы эти линии прорисовывались от начала до конца.

    Если нужно сделать переменную толщину линий, как на картинке, то принцип будет тот же, но с дополнением: толщина линий делается довольно большой, а сверху к ним применяется SVG-маска (как с ними работать описано вот в этой статье), состоящая из кривых вытянутых треугольников (не знаю, как описать по-русски изогнутую линию переменной толщины, но по вашей картинке понятно, о чем речь).
    Ответ написан
  • Как верстают такой фон?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    И вообще может уже что-то появилось, чтобы не ставить жирные картинки в качестве бекграунда?

    Таки да, называется SVG. Там только сам квадрокоптер скорее всего жирный, а круги с градиентами вполне можно в векторе сделать - они вообще ничего занимать не будут.

    Как верстают такой фон?

    Можно по-разному подходить к вопросу. Как вариант три слоя:
    1. Левый контент, у него фон в виде левого круга (чтобы не париться с его размером на разных размерах экрана - ведь там по идее контент должен помещаться в круг). Тут главное все аккуратно расположить и не забывать про critical css.
    2. Коптер (поскольку он жирный, его можно подгружать асинхронно и выдвигать с помощью CSS-анимации из-за правого края экрана - будет и красиво и производительно; я бы еще какой-нибудь эффект к тексту добавил, но это уже другая история). Его размер видимо должен зависеть от ширины экрана и размера контента слева. Надо заранее сообразить, как это все должно адаптивиться.
    3. Меню, которое справа вверху, оно должно быть поверх коптера (опять вопрос про адаптивность).
    4*. Фон, который самый-самый большой фон можно просто поставить на background у хидера. Поскольку он в векторе, его можно сделать гораздо выше, чем на картинке, чтобы опять же не париться, что он вылезет из скругления внизу секции на телефоне. Само это скругление можно сделать тысячей способов, на тостере уже не раз спрашивали.

    Такой подход требует больше времени, чем просто поставить все на фон у одного элемента, но и результат будет немного другого уровня.
    Ответ написан
    1 комментарий
  • Анимация пунктирной свг линии, возможно?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Можно поиграть с stroke-dasharray у этой линии (наводящий пример и статья вдогонку, чтобы понимать контекст).
    Ответ написан
    Комментировать
  • Как сделать шестиугольник в который потом вставить картинку?

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

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    background: linear-gradient(to right, #f77 0%, #f77 30%, #fff 30%, #fff 100%);
    Ответ написан
    Комментировать
  • Что использовать для адаптивной вёрстке?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    для адаптивной вёрстке?

    В современной практике нет разделения на резиновую/адаптивную/отзывчивую верстку - это все единый процесс создания компонентов, которые хорошо выглядят на разных размерах экрана. Ответ на ваш вопрос очевиден: используйте тот инструмент, который хорошо решает вашу конкретную задачу. Не нужно вообще всегда использовать вот этот или вот тот инструмент, потому что кто-то в интернете так сказал. Смотрите на логику поведения/применения ваших конкретных компонентов и выбирайте:
    1. px - если нужно жестко задать размер
    2. % - если размер привязан к чему-то в процентном отношении
    3. vw - если нужно привязать что-то к размеру вьюпорта (например размер шрифта)
    4. vh - то же самое (ну и vmin/vmax туда же)
    5. em - если нужно привязать размер чего-то к размеру шрифта (текущему или родительскому)
    6. rem - то же самое, но глобально (можно использовать везде и для всего)
    7. cm, mm, in, pt, pc - если нужно красиво выводить на печать
    8. ex, ch - не сильно удобные единицы измерения в текущих реалиях
    Ответ написан
    Комментировать
  • Как сделать анимацию стирания кода?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Посмотрите пример с сердечком из статьи SVG маски и вау-эффекты: о магии простыми словами. Он должен навести на правильные мысли.
    Ответ написан
    Комментировать
  • Чем отличаются псевдоклассы с разным двоеточием?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    В древние времена все браузеры поддерживали только одинарное двоеточие. В наше время (начиная с IE9) принято использовать:


    Эта рекомендация делает код немного более читаемым в ситуациях, когда таких псевдо-сущностей используется много.
    Ответ написан
    6 комментариев
  • Как преобразовать less в css на стороне сервера и получить ответ в css?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Нагружать сервер компиляцией? А вы уверены, что у вас хватит вычислительных мощностей когда пользователей станет больше? Может лучше на клиенте компилировать (пример)?
    Ответ написан
  • Объясните как работает position: fixed; когда используется transform?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    кто может объяснить это поведение?

    Спецификация может объяснить:

    For elements whose layout is governed by the CSS box model, any value other than none for the transform also causes the element to become a containing block, and the object acts as a containing block for fixed positioned descendants.


    Добавили элементу transform - все его потомки с position:fixed начинают отсчитывать свое расположение от него. Они начинают считать его своим "внешним блоком", а не вьюпорт или страницу, как это происходит по умолчанию для position:fixed.
    Ответ написан
    3 комментария
  • Зачем нужен nunjucks, как он может помочь в фронтенд верстке?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Как он может помочь в фронтенд верстке? Не могу понять.

    В целом nunjucks своим синтаксисом напоминает handlebars, а еще есть pug (бывший jade) - схожий инструмент (по совместительству препроцессор), который вам точно стоит посмотреть.

    Все эти инструменты (их вообще много разных), которые можно объеденить словом "шаблонизаторы", фронтендеру нужны в разных ситуациях:
    • Переиспользование разметки при верстке (один раз компонент сверстали, десять раз импортировали)
    • Удобное отображение загруженных с сервера данных на странице (в одностраничниках с большим количеством данных - просто маст хев)
    • В некоторых случаях ускорение верстки, да и выглядит она более красиво и структурированно
    • Создание шаблонов под автогенерируемую документацию и тесты

    Можно придумать и другие варианты использования.
    Ответ написан
    Комментировать
  • Как использовать gremlin, monkey testing?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    актуально ли использовать gremlin.js

    Ну инструмент не очень популярный - всего 636 загрузок с NPM за последний месяц. Давно не обновлялся, но свою задачу по всей видимости продолжает решать, так что если вам он нужен - используйте.

    Если б он был такой крутой, то его б все использовали

    Используют. Не так много, но используют. Просто инструмент очень узкоспециализированный, его не везде имеет смысл применять. Я на свой сайт не стал бы этот инструмент тащить - две с половиной кнопки-ссылки, ну зачем там такое тестирование? Ну и не забывайте, при разработке большинства (подавляющего, к сожалению) сайтов слова "тестирование интерфейсов", и тем более "автоматизированное" звучат как что-то страшное-страшное и не дающее прибыли здесь и сейчас. Так что многие забивают.
    Ответ написан
    2 комментария
  • Как реализовать подобный эффект?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Абсолютное позиционирование, вырезание картинок, before/after... Ох и понапридумывают всякого...
    .example {
        background: linear-gradient(to right, #F0F3BD, #F0F3BD), // левая граница
            linear-gradient(to right, #F0F3BD 0%, #F0F3BD 70%, #fff 70%, #fff 100%), // верхняя
            linear-gradient(to right, #F0F3BD 0%, #F0F3BD 70%, #fff 70%, #fff 100%), // нижняя
            linear-gradient(to right, #fff, #fff); // правая
        background-size: .5rem 100%, 100% .5rem, 100% .5rem, .5rem 100%;
        background-position: top left, top left, bottom left, top right;
        background-repeat: no-repeat;
    }

    Один элемент. Один фон. Для всего остального есть CSS.
    codepen
    5aa57a2048bd2215197814.png
    Ответ написан
    Комментировать
  • Как обновленять минифицированные стили в Chrome?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Сейчас я её решил переименованием файлов, что довольно странно делать

    Общепринятое решение - использовать ссылки вида my-file.css?v=1.0.0 и при обновлении изменять номер версии. Сами файлы переименовывать не обязательно.
    Ответ написан
    Комментировать
  • Баг transform: translate в FireFox?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Существует ли какое-то решение проблемы, помимо замены translate?

    Не используйте пустые кадры в keyframes, указывайте все в явном виде:
    @keyframes logo {
        0% {
            transform: translateX(-120%); /* Раз */
        },
        10% {
            transform: translateX(-120%);
        }
        15% {
            transform: translateX(0%); /* И два */
        },
        100% {
            transform: translateX(0%);
        }
    }
    Ответ написан
  • Как вставить CSS стили только для IE и Edge?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Попробовал несколько вариантов, ни один не работает.

    На browserhacks.com есть хорошая подборка хаков для определения самых разных браузеров и их версий с помощью CSS или JS. Попробуйте варианты, которые там предлагаются. И будьте внимательны: если вы используете автопрефиксер или что-то для оптимизации CSS, то эти инструменты могут незаметно ломать некоторые хаки при сборке.
    Ответ написан
    Комментировать
  • Как реализовать такую анимацию оленя?

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

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Существует ли библиотека которая ориентируется на базу данных caniuse и в процессе написания css кода автоматически предупреждает что для выбранных браузеров то или иное свойство не поддерживается

    doiuse.
    Ответ написан
    1 комментарий
  • Почему не срабатывает transform-origin в IE и Edge?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    По caniuse поддержка есть

    Ну вообще-то не совсем, там есть сноска №1, где говорится, что IE и Edge "Does not support CSS transforms on SVG elements".

    для точек нужный центр указан..

    Уберите его из CSS и используйте матрицу вместо scale:
    TweenLite.from("...", 1.5, { transform: "matrix(0, 0, 0, 0, 131, 77)" });
    Ответ написан
    1 комментарий
  • Как сделать Border в разных цветах?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Можно нарисовать его градиентом (пример).
    Ответ написан
    1 комментарий