Как использовать переменные в css

Изучите CSS-переменные за 5 минут

Как использовать переменные в css. 1*8yVwVZEB9Ub86UY56z7y2g. Как использовать переменные в css фото. Как использовать переменные в css-1*8yVwVZEB9Ub86UY56z7y2g. картинка Как использовать переменные в css. картинка 1*8yVwVZEB9Ub86UY56z7y2g

Пользовательские свойства CSS (CSS Custom Properties), также известные как переменные — большая победа для разработчиков интерфейсов. Они приносят силу переменных в CSS, что приводит к уменьшению дублирования, повышению читабельности и большей гибкости.

Кроме того, в отличие от переменных в препроцессорах CSS, нативные переменные CSS фактически являются частью DOM, что даёт много преимуществ. Поэтому они по существу похожи на переменные SASS и LESS на стероидах. В этой статье я проведу ускоренный курс о том, как работает эта новая технология.

Я также создал бесплатный интерактивный курс из 8 частей по CSS-переменным, поэтому ознакомьтесь с ним, если вы хотите стать экспертом по этой теме.

Зачем изучать переменные CSS?

Есть много причин использовать переменные в CSS. Одна из наиболее убедительных из них — уменьшение дублирования в вашей таблице стилей.

Как использовать переменные в css. 1*03NPOHNBLqOn5r22HrvlyQ. Как использовать переменные в css фото. Как использовать переменные в css-1*03NPOHNBLqOn5r22HrvlyQ. картинка Как использовать переменные в css. картинка 1*03NPOHNBLqOn5r22HrvlyQ

Как использовать переменные в css. 1*de4 CIacmaMo9PO6PlTkyQ. Как использовать переменные в css фото. Как использовать переменные в css-1*de4 CIacmaMo9PO6PlTkyQ. картинка Как использовать переменные в css. картинка 1*de4 CIacmaMo9PO6PlTkyQ

Это не только упрощает чтение кода, но и даёт больше гибкости, если нужно изменить цвет.

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

Теперь давайте начнём изучение CSS-переменных!

Объявление первой переменной CSS

Для получения доступа к переменной, вам нужно использовать функцию var() и передать имя переменной в качестве первого параметра.

И это назначит вашему заголовку цвет #ff6f69 :

Как использовать переменные в css. 1*gv5ZAXzaLMT2nQVvmBei5w. Как использовать переменные в css фото. Как использовать переменные в css-1*gv5ZAXzaLMT2nQVvmBei5w. картинка Как использовать переменные в css. картинка 1*gv5ZAXzaLMT2nQVvmBei5w

Функция var поддерживает второй параметр, фолбэк, то есть значение (или также CSS-переменная), которое будет использоваться, если переменная, переданная первым параметром, не определена, например:

Если переменная main-color недоступна, то будет использоваться черный цвет ( black ).

Объявление локальной переменной

Вы также можете создавать переменные с локальной областью видимости, который будут доступны только для того элемента, в котором они были объявлены, включая его дочерние элементы. Это имеет смысл делать, если вы знаете, что переменная будет использоваться только в определённой части (или частях) вашего приложения.

Например, у вас может быть окно с предупреждением, в котором используется определённый цвет, который не используется в других частях приложения. В этом случае скорее всего нецелесообразно определять этот цвет в глобальной области:

Теперь эта переменная может использоваться в дочерних элементах:

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

Лёгкость реализации адаптивности с переменными

Большое преимущество CSS-переменных заключается в том, что они имеют доступ к DOM. Чего нельзя сказать о LESS или SASS, поскольку их переменные вставляются в обычный CSS.

На практике это означает, что вы можете, например, изменить переменные в зависимости от ширины экрана:

Всего четыре строки кода и вы изменили базовый размер шрифта при просмотре вашего приложения на маленьком экране. Довольно элегантно, не так ли?

Как получить доступ к переменным из JavaScript?

Доступ к CSS-переменным с помощью JavaScript — это ещё одно из преимуществ того, что CSS-переменные являются частью DOM. Вы можете обновлять их значения, что может пригодится, если вы хотите дать возможность вашим пользователям изменять внешний вид сайта (например, изменить размер шрифта).

Давайте продолжим на примере в начале этой статьи. Получение значение CSS-переменной через JavaScript занимает три строки кода:

Для обновления переменной CSS, просто вызовите метод setProperty на элементе, в котором была объявлена переменная, и передайте имя переменной в качестве первого параметра и новое значение — вторым.

Изменение основного цвета повлияет на весь внешний вид приложения, что идеально подходит для случаев, когда пользователи могут выбрать тему на вашем сайте.

Как использовать переменные в css. 1*ludyq87oDilcmJR98bcGwA. Как использовать переменные в css фото. Как использовать переменные в css-1*ludyq87oDilcmJR98bcGwA. картинка Как использовать переменные в css. картинка 1*ludyq87oDilcmJR98bcGwA

Поддержка браузеров

В данный момент 77 процентов от глобального трафика сайтов поддерживают переменные CSS, причём почти 90 процентов в США. Мы уже используем CSS-переменные на Scrimba.com некоторое время, поскольку наша аудитория технически подкована и в основном использует современные браузеры.

Как использовать переменные в css. 1*oCt OblOjurKizk SAITwg. Как использовать переменные в css фото. Как использовать переменные в css-1*oCt OblOjurKizk SAITwg. картинка Как использовать переменные в css. картинка 1*oCt OblOjurKizk SAITwg

Хорошо, на этом всё. Надеюсь, вы узнали что-то новое для себя.

Если вы хотите изучить его правильно, обязательно посмотрите мой бесплатный курс по CSS-переменным.

Источник

Основные варианты использования CSS-переменных (Custom Properties)

CSS Variables или CSS Custom Properties уже давно используются в разработке и поддерживаются большинством популярных браузеров. Если у вас нет обязательного требования разрабатывать под IE, то вполне вероятно, вы уже успели оценить их преимущества.

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

Варианты использования

1. Определение переменных

Начнём с базовых вещей, а именно: как определять переменные. Стоит помнить, что их можно определить как в корневом элементе :root (переменные будут доступны по всему приложению), так и внутри любого селектора (будут доступны только для выбранного элемента и его дочерних элементов):

2. Переопределение переменных

3. Локальный fallback

4. Привязка переменных

При объявлении переменных могут использоваться другие переменные:

5. Переменные в calc()

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

6. Прозрачность в цветовых функциях

Вот стандартный пример по использованию hex-цвета для определения значения переменной:

Часто бывает, что для цвета нужно задавать различную прозрачность. В CSS для этого есть:

#rrggbbaa hex color notation

Использование rgba()

Альфа-канала для задания прозрачности

На самом деле, внутри CSS допускается использовать практически всё (за небольшим исключением), даже код на JavaScript!

На выходе собираются аргументы для rgba() : значения из переменной и альфа-канала.

По итогу получаем цвет:

Использование hsla()

При использовании, указываем все базовые параметры в селекторе.

Меняем один / несколько переменных в селекторе (изменения коснутся только данного селектора и его дочерних элементов).

На выходе получаем цвет:

7. Переменные в SVG

Значение переменной можно переопределять при необходимых условиях: например, при событии hover на SVG:

Использование с JavaScript. API CSS Style Declaration

CSS переменные работают в runtime, в отличие переменных препроцессоров. Это значит, что мы можем получить к ним доступ в процессе работы приложения через JavaScript.

Рассмотрим, как можно работать с CSS переменными через JavaScript:

В CSS у нас есть 2 переменные:

А вот код на JavaScript:

Для примера, я показал все возможные действия с переменными: чтение, изменение, удаление. Использовать операции можно по необходимости.

Вычисленные свойства

В коде выше я затронул тему «Вычисленных свойств». Рассмотрим подробнее: для этого создадим небольшой пример:

Единицы измерения можно подразделить на абсолютные и относительные:

Относительные (н-р: rem ) формируются относительно заданного параметра.

Для отображения, относительные единицы измерения должны быть преобразованы в абсолютные. Если мы откроем инспектор объектов в Google Chrome (или другом браузере) на вкладке «Elements», то сможем увидеть это преобразование:

Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

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

    Проверка поддержки переменных

    Достоинства и ограничения

    Работают в runtime, в отличие от переменных препроцессоров

    Можно обратиться из JavaScript

    В именах обычных свойств CSS: var(—side): 10px

    В значениях media-запросов: @media screen and (min-width: var(—desktop))

    В подстановке URL: url(var(—image))

    Заключение

    Использование CSS-переменных еще один шаг к отказу от препроцессоров. Ждем реализации миксинов @apply на CSS и CSS Nesting Module!

    Источник

    Использование переменных в CSS

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

    CSS переменные подчиняются каскаду и наследуют значения от своих родителей.

    Основное использование

    Первый шаг с CSS Переменными

    Начнём с этого простого CSS, который окрасит элементы разных классов одинаковым цветом:

    Мы применим его к этому HTML:

    что приводит нас к этому:

    Обратите внимание на повторения в CSS. Коричневый фон установлен в нескольких местах. Для некоторых CSS объявлений можно указать этот цвет выше в каскаде и наследование CSS решит эту проблему. Но для нетривиальных проектов это не всегда возможно. Объявив переменную в псевдоклассе :root, автор CSS может избежать ненужных повторений, используя эту переменную.

    Наследование переменных в CSS и возвращаемые значения

    Пользовательские свойства могут наследоваться. Это означает, что если не установлено никакого значения для пользовательского свойства на данном элементе, то используется свойство его родителя:

    В результате var(—test) будет:

    Используя var() вы можете объявить множество возвращаемых значений когда данная переменная не определена, это может быть полезно при работе с Custom Elements и Shadow DOM.

    Первый аргумент функции это имя пользовательского свойства. Второй аргумент функции, если имеется, это возвращаемое значение, который используется в качестве замещающего значения, когда пользовательское свойство является не действительным. Например:

    В замещаемых значениях можно использовать запятые по аналогии с пользовательскими свойствами. Например, var(—foo, red, blue) определить red, blue как замещающее значение (от первой запятой и до конца определения функции)

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

    Обоснованность и полезность

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

    Источник

    Переменные CSS — курс молодого бойца

    Как использовать переменные в css. 1wmcbeuwodzijh2l 7zkm8i93ve. Как использовать переменные в css фото. Как использовать переменные в css-1wmcbeuwodzijh2l 7zkm8i93ve. картинка Как использовать переменные в css. картинка 1wmcbeuwodzijh2l 7zkm8i93ve

    Переменные CSS (также известные как настраиваемые свойства) поддерживаются браузерами почти 4 года. Мне нравится применять их в зависимости от проекта или ситуации. Они очень полезны и просты в использовании, но зачастую фронтенд разработчик неправильно использует или неправильно понимает их.

    Основная цель статьи: я хочу иметь место, где собрано все, что я знаю о переменных CSS, чтобы узнать и понять больше. Здесь вы прочитаете обо всем, что должны знать о переменных CSS, включая примеры применения в коде. Вы готовы? Тогда погружаемся.

    Введение

    Переменные CSS — это значения, определенные в документе CSS с целью переиспользования и уменьшения количества избыточных значений CSS. Простой пример:

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    В этом фрагменте #235ad1 встречается трижды. Представьте, что в большом проекте есть разные файлы CSS и вас попросили изменить какой-то цвет. Лучшее, что вы можете сделать — использовать поиск и замену.

    Такое лучше сделать с помощью переменных CSS. Посмотрим, как определять их. Вначале пишется двойной дефис. Определим переменную в :root (то есть в элементе HTML):

    Именование переменных

    Именование CSS не так уж отличается от именования переменных в языках программирования. Корректное имя переменной может содержать латинские буквы и цифры, подчеркивания, тире. Важно упомянуть, что переменные CSS чувствительны к регистру.

    Область видимости

    Что полезно в переменных CSS: мы можем указывать область видимости. Принцип аналогичен тому, что и в языках программирования. Возьмем, например, JavaScript:

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Резервные значения

    Резервное значение не означает, что мы обеспечиваем значение для браузера, который не поддерживает CSS. Эту возможность мы можем использовать с помощью переменных CSS. Посмотрите на пример:

    Эта особенность полезна, когда значение зависит от определенного действия. Резервное значение важно предоставить, когда у переменной нет значения.

    Примеры использования

    Управление размером компонента

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Обычное дело — иметь несколько размеров кнопки в дизайн-системе: маленький, средний и большой. Размеры проще описать с помощью переменной CSS.

    Переменные CSS и цвета HSL

    HSL — английская аббревиатура: оттенок, насыщенность, яркость.

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Пропорциональное изменение размера

    Если вы работали с Photoshop, Sketch, Figma или Adobe XD, то у вас может возникнуть идея удерживать клавишу Shift для пропорционального изменения размера элемента. В CSS нельзя сделать такое напрямую, но есть обходной путь с применением переменных CSS.

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    CSS Grid

    Переменные CSS могут быть крайне полезны для сеток.

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Сохранение наполненных значений

    Градиенты CSS

    Под наполненными значениями я имею в виду, например, градиент. Когда у вас есть используемые в системе градиент или фон, их можно сохранить в переменной CSS.

    Или сохранить одно значение. Возьмем, к примеру, угол наклона:

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Положение фона

    Возможно включить значения в переменную. Это полезно, когда элемент позиционируется в зависимости от контекста.

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Переключение между темным и светлым режимами

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

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Установка значения по умолчанию

    Управление шириной враппера

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Враппер веб-сайта может иметь несколько вариантов. Может быть, вам нужна небольшая обертка для страницы, но большая для другой. В таком случае полезны переменные CSS.

    Встроенные стили

    Переменные CSS со встроенными стилями открывают множество возможностей, о которых вы, возможно, не знали. Об этом я написал статью, но здесь я упомяну некоторые интересные варианты применения. Возможно, такой подход не идеален для реально работающих веб-сайтов, но он может быть полезен при создании прототипов и в тестировании различных идей.

    Элементы динамической сетки

    Аватары пользователей

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Полезный вариант применения — определение размеров элементов. Допустим, нужно четыре разных размера аватара пользователя с возможностью контроля размера с помощью только одной переменной.

    Проанализируем CSS выше:

    Медиа-запросы

    Комбинирование переменных CSS и медиа-запросов очень полезно в настройке переменных, применяемых на всем веб-сайте. Самый простой пример, о котором я думаю, — изменение значения отступов.

    Наследование

    Да, переменные CSS наследуются. Если в родительском элементе определена переменная, дочерние элементы наследуют ее. Пример:

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    У нас есть группа действий с такими требованиями:

    Другой полезный пример — наследование переменных CSS для настройки анимации. Ниже вы видите пример из этой статьи Сандрины Перейры в блоге CSS Tricks.

    Как работает валидация переменных CSS

    Когда переменная CSS внутри функции var() невалидна, браузер заменяет ее начальным или унаследованным значением в зависимости от свойства.

    Я использовал 16 пикселей — это значение свойства цвета. Значение неправильное. Поскольку свойство цвета наследуются, вот, что сделает браузер:

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Некорректное вычисленное значение

    Вышеупомянутое технически называется некорректное вычисленное значение. Это происходит, когда var() ссылается на переменную CSS ее начальным значением или использует допустимую переменную CSS с недопустимым значением свойства.

    Посмотрим на пример, о котором я узнал из этой статьи пользователя Lea Verou.

    Концепция некорректного вычисленного значения существует потому, что переменные не могут «не работать сразу», как в случае синтаксических ошибок, поэтому к тому времени, когда агент пользователя понимает, что значение свойства недопустимо, он уже отбрасывает другие каскадные значения.

    Интересные находки

    URL как значение

    Возможно, вы не можете контролировать все ресурсы на веб-странице. Некоторые из них должны размещаться в интернете. В этом случае вы можете сохранить URL-адрес ссылки в переменной CSS.

    Можно задаться вопросом: можно ли интерполировать CSS-переменные с помощью url(). Посмотрим на пример:

    Это невозможно: var(—main-bg) рассматривается как сам URL, который недопустим. К тому моменту, когда браузер вычислит это значение, оно уже не будет действительным и не будет работать, как ожидалось.

    Хранение нескольких значений

    Полезно то, что возможно хранить несколько значений независимо от значения переменной. Если они невалидны, то это должно сработать. Посмотрим на пример:

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Другой пример — применение этого свойства со свойством background.

    У нас есть два раздела. Один из них требует, чтобы фон не повторялся по осям X и Y.

    Анимация переменных внутри правила @keyframes

    Если вы читали спецификацию для переменных, вы могли прочитать термин animation-tainted — испорченная анимация. Идея в том, что при использовании CSS-переменной внутри правила @keyframes она не может работать в анимации.

    Любое пользовательское свойство в правиле @keyframes анимируется. Это влияет на то, как оно обрабатывается при обращении к нему через функцию var() в свойстве анимации. Когда хочется, чтобы вышеприведенная анимация работала, мы должны анимировать по-старому. То есть нужно заменить переменную фактическим свойством CSS.

    Обновление: 9 октября 2020 года

    Расчеты

    Возможно, вы не знаете, что с переменными CSS можно выполнять вычисления. Рассмотрим следующий пример, который я объяснял ранее.

    В DevTools есть несколько полезных трюков, чтобы облегчить нам работу с переменными CSS. Давайте исследуем их!

    Возможность увидеть значение цвета

    Разве не полезно видеть визуальный индикатор для значения цвета или фона, когда вы используете переменную CSS? Chrome и Edge показывают цвет.

    Как использовать переменные в css. bni7qs 0 c8qeu6up5h3rryozqc. Как использовать переменные в css фото. Как использовать переменные в css-bni7qs 0 c8qeu6up5h3rryozqc. картинка Как использовать переменные в css. картинка bni7qs 0 c8qeu6up5h3rryozqc

    Вычисленные значения

    Чтобы увидеть вычисленное значение, наведите указатель мыши или кликните — в зависимости от браузера.

    Как использовать переменные в css. . Как использовать переменные в css фото. Как использовать переменные в css-. картинка Как использовать переменные в css. картинка

    Все вычисленные значения отображаются при наведении курсора. За исключением Safari, где для этого нужно нажать кнопку с двумя линиями.

    Автозавершение переменных CSS

    Отключение переменной

    Когда вам нужно отключить переменную CSS от всех использующих ее элементов, это можно сделать, сняв флажок с элемента, для которого она определена. Смотрите рисунок ниже:

    Как использовать переменные в css. gb4bbwayukbtl8jznbri5qpqpc. Как использовать переменные в css фото. Как использовать переменные в css-gb4bbwayukbtl8jznbri5qpqpc. картинка Как использовать переменные в css. картинка gb4bbwayukbtl8jznbri5qpqpc

    Заключение

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

    Я пишу электронную книгу

    Рад сообщить вам, что пишу электронную книгу об отладке CSS.

    Источник

    Краткое руководство по переменным в CSS (причины использования, синтаксис и примеры)

    Как использовать переменные в css. . Как использовать переменные в css фото. Как использовать переменные в css-. картинка Как использовать переменные в css. картинка

    Я уже достаточно давно экспериментирую с CSS-переменными. Если вы к ним еще не подступались, вы можете воспользоваться этим кратким руководством, чтобы быстро во всем сориентироваться и приступить к работе.

    Что это такое?

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader
    Простой пример применения для кнопок с областью видимости

    CSS-переменные позволяют вам определять многократно используемые значения в CSS.

    Они появились уже достаточно давно. Недавно они стали набирать популярность в связи с более широкой поддержкой браузерами.

    Если вы пользуетесь препроцессором, например SASS, то с переменными вы уже знакомы. Теперь можно делать все то же самое без препроцессора.

    Зачем использовать переменные стиля?

    Переменные позволяют нам придерживаться принципа DRY (don’t repeat yourself). Благодаря им у нас также появляется способ создать единую точку ссылки для повторяющихся значений. Если вы пользуетесь препроцессором, то, скорее всего, преимущества такого подхода вам уже знакомы. Чаще всего это используют, чтобы задать основной цвет, который используется для множества элементов.

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader
    Повтор фонового цвета для нескольких селекторов

    Во фрагменте выше значение #e74c3c могло бы и должно бы быть переменной. Если из этого значения сделать переменную, у нас получится единая точка, на которую можно ссылаться. Это снижает риск появления багов и проблем со стилем, поскольку облегчает дальнейшее обслуживание.

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader
    Создание точки ссылки с помощью переменной

    Почему бы не пользоваться переменными препроцессора вместо нативных CSS-переменных?

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

    Нативные CSS-переменные стоит применять когда:

    Главные преимущества нативных CSS-переменных

    На мой взгляд нативные CSS-переменные имеют два больших преимущества.

    Первое. Они обновляются во время выполнения! Ими можно управлять с помощью медиазапросов, состояний или даже JavaScript. Браузер применит внесенные изменения. Это открывает много возможностей.

    Кроме того, CSS-переменные позволяют учитывать область видимости. Это означает, что можно поменять, допустим, стиль или поведение элемента путем обновления значения переменной. В противном случае приходится с нуля прописывать новые стили для этого элемента. В результате объем СSS на выходе уменьшается.

    Не самый красивый синтаксис

    Давайте рассмотрим пример.

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Чтобы определить переменную, в качестве префикса используется два дефиса.

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    А что происходит, когда мы ссылаемся на переменную, значение которой не задано? В этом случае можно задать резервные значения или значения по умолчанию. Функция var поддерживает второй необязательный параметр, соответствующий резервным значениям или значениям по умолчанию.

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Нет необходимости использовать переменную для нашего фолбека. Можно взять значение. Но с переменными будет проще осуществлять поддержку кода.

    Обратите внимание, что для button.btn никаких стилей не объявлено. Вместо этого обновляется значение. Теперь уместно перейти к каскадированию и областям видимости.

    Каскадирование и области видимости

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Стоит отметить, что, как и в случае со встроенными стилями, встроенные CSS-переменные имеют наивысший приоритет.

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Управление значениями

    Управлять значениями CSS-переменных можно с помощью других CSS-правил. Основные подходы — медиазапросы и изменения состояния.

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

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Изменение запустит перерисовку браузера и покажет результат пользователю.

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Управление значениями с помощью JavaScript

    Управлять переменными из СSS очень удобно. Но чтобы по-настоящему получить контроль над ними, придется управлять ими посредством JavaScript. К счастью, это реально.

    Метод setProperty позволяет задавать переменные стиля элемента и управлять ими.

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Использование calc() и отказ от единиц измерения

    Постарайтесь не использовать единиц измерения в переменных. Это облегчит дальнейшее обслуживание.

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Функция calc() позволяет нормализовать и задавать значения с желаемыми единицами измерения.

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    CSS-переменные можно даже использовать для хранения информации о предпочитаемых единицах измерения. Во фрагменте для наглядности мы взяли «1px», но можно заменить это на «1pt», «1rem» и т.д.

    Отсутствие единиц измерения, как правило, более актуально, когда значения задаются из JavaScript. При обработке чистых значений наш скрипт абстрагируется от CSS. Нарушается связь.

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Когда единицы измерения содержатся в CSS, обслуживание тоже проходит через CSS.

    Примеры применения

    Я все еще изучаю различные примеры применения CSS-переменных. В первую очередь в голову приходит динамическая темизация. Отслеживание курсора и прокрутки экрана — тоже любопытные применения. Я подготовил обучающие материалы, которые можно найти ниже.

    Пример с собакой и мячиком

    Давайте один пример проработаем вместе!

    Здесь мы просто отслеживаем положение курсора и обновляем положение двух эмодзи.

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Главное здесь — перенести эмодзи из центральной точки с помощью translate и одновременно применить transition-delay для собаки.

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Вот и все. Еще пара небольших доработок, и получается что-то в этом роде:

    Как использовать переменные в css. image loader. Как использовать переменные в css фото. Как использовать переменные в css-image loader. картинка Как использовать переменные в css. картинка image loader

    Недостатки

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

    Заключение

    Работать с CSS-переменными мне нравится. Чем больше я ими занимаюсь, тем больше примеров применения приходят в голову.

    Благодаря этой статье вы сами можете начать изучать CSS-переменные.

    Если вам интересно получить более подробный обзор CSS-переменных, посмотрите это видео.

    Источник

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *