Первый взгляд на условные операторы When и Else в CSS

Первый взгляд на условные операторы When и Else в CSS

20 апреля 2022 г.

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


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


Новая Спецификация условных правил CSS 5 пытается решить эту проблему, вводя два новых способа выполнения медиа-запросов — @когда и @иначе. Это, наконец, позволит нам создавать условные операторы непосредственно в ванильном CSS. Давайте посмотрим, как это работает!


Поддержка @when/@else


В настоящее время ни один браузер не поддерживает @when/@else, однако это, вероятно, скоро изменится. Полная поддержка @when/@else показана ниже.


![Поддержка @when и @else в CSS].


Использование @when/@else в CSS


Предположим, у нас есть один набор правил, который мы хотим применить к экранам шириной менее 780 пикселей, поддерживающих display: flex, и другой, который должен применяться ко всему, кроме этого. Раньше нам приходилось использовать запросы @media, чтобы выбирать обе эти вещи по отдельности. Это стало немного запутанным при выборе нескольких разных вещей. С @when и @else это выглядит так:


``CSS


@когда экран и (максимальная ширина: 780 пикселей) и поддерживает (отображение: flex) {


.мой элемент {


красный цвет;


дисплей: гибкий;


@еще {


.мой элемент {


дисплей: блок;


Мы также можем связать несколько условий. Например, предположим, что у нас есть три сценария: экраны с максимальной шириной 780 пикселей, которые поддерживают display: flex, экраны большего размера, которые поддерживают display: flex, и все остальное. В этом случае у нас может быть несколько условий:


``CSS


@когда экран и (максимальная ширина: 780 пикселей) и поддерживает (отображение: flex) {


.мой элемент {


красный цвет;


дисплей: гибкий;


Экран @else и поддерживает (display: flex) {


.мой элемент {


дисплей: гибкий;


@еще {


.мой элемент {


дисплей: блок;


Как и следовало ожидать, у нас может быть еще больше операторов @else, но приведенное выше дает вам представление о том, насколько полезными станут как @when, так и @else при реализации в CSS.


Вывод


Условные операторы никогда не были в ванильном CSS, так что здорово, что они скоро появятся. Это также значительно упростит создание медиа-запросов. У нас уже есть логика в CSS, если мы используем сторонние пакеты, такие как SASS, но когда дело доходит до CSS, мы можем избежать необходимости использовать препроцессор или сборку с этим дополнением.


Также опубликовано здесь



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE