TGViewer
<divelopers> <divelopers> @alexnozer_dev · 1.18K subscribers
Post #274 898
Нюансы функции style()

Не так давно я писал о новой функции if(), которая появилась в 137й версии Chrome и Edge. В частности, там упоминалась функция style(), с помощью которой можно проверять значения свойств. В посте был такой пример кода:

.toast {
background-image: if(
style(color: green): url('/success.svg');
style(color: orange): url('/warning.svg');
style(color: red): url('/danger.svg');
else: url('/info.svg')
);
}

.toast--success {
color: green;
}

.toast--warning {
color: orange;
}

.toast--danger {
color: red;
}


Этот пример на данный момент работать не будет! Согласно спецификации CSS Conditional Rules Module Level 5, функция style() может принимать декларации, валидные свойства и пользовательские свойства. Это значит, что color — допустимое значение.

Но на данный момент браузеры поддерживают только пользовательские свойства в style(). Об этом дважды указано в статье про использование контейнерных запросов на MDN: первое упоминание, второе упоминание.

При этом ошибки не будет, применится значение, указанное в блоке else. То есть вне зависимости от значения свойства color, у background-image всегда будет значение url('/info.svg'). Рабочий пример будет выглядеть так:

.toast {
background-image: if(
style(--color: green): url('/success.svg');
style(--color: orange): url('/warning.svg');
style(--color: red): url('/danger.svg');
else: url('/info.svg')
);
color: var(--color, inherit);
}

.toast--success {
--color: green;
}

.toast--warning {
--color: orange;
}

.toast--danger {
--color: red;
}


#css
  • 🔥 7
  • 🤨 6
  • 👍 2
  • 🙈 2
  • 👎 1
  • 👌 1
  • 🗿 1
More from @alexnozer_dev
  1. Sep 23, 2026Images Preview На некоторых сайтах, где надо показывать изображения в высоком качестве, дл…
  2. Sep 21, 2026Реализация пользовательских атрибутов Под конец прошлого года я рассказывал об API пользов…
  3. Sep 14, 2026Подклассы Event вместо CustomEvent Многие библиотеки предоставляют систему событий в качес…
  4. Sep 11, 2026Эволюция стилей в темах Shopify Адам Ватан на днях поделился новостью, что Shopify выкупил…
  5. Sep 9, 2026Persistent Widgets Многие сайты не должны быть SPA. Но иногда эта архитектура продиктована…
  6. Sep 7, 2026Processing Instructions и маркеры В DOM всё представлено в виде узлов (Node) разных типов.…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →