Правило @supports дозволяє перевірити, чи підтримує браузер ту чи іншу можливість, і на основі цього створити набір стильових правил. Допустимо створювати комплексні умови за допомогою логічних операторів not, and, or.
<code>@supports <умова> { <стильові правила> }
Позначення
Опис | Приклад | |
---|---|---|
<тип> | Вказує тип значення. | <розмір> |
A && B | Значення повинні виводитися в зазначеному порядку. | <розмір> && <колір> |
A | B | Вказує, що потрібно вибрати лише одне значення із запропонованих (A або B). | normal | small-caps |
A || B | Кожне значення може використовуватися самостійно або спільно з іншими у довільному порядку. | width || count |
[ ] | Групує значення. | [ crop || cross ] |
* | Повторювати нуль або більше разів. | [,<час>]* |
+ | Повторювати один або більше разів. | <число>+ |
? | Вказаний тип, слово або група не є обов'язковим. | inset? |
{A, B} | Повторювати не менше A, але не більше B разів. | <радіус>{1,4} |
# | Повторювати один або більше разів через кому. | <час># |
Значення
В якості умови у круглих дужках пишеться стильова властивість та її значення. Далі у фігурних дужках йдуть стильові правила. Якщо браузер підтримує вказану властивість, то застосовуються задані стильові правила, інакше вони ігноруються.
@supports (transform: perspective(300px)) { /* Браузер підтримує властивість transform з функцією perspective() */ }
Для перевірки того, що властивість не підтримується застосовується логічний оператор not, він ставиться перед умовою.
@supports not (transform: perspective(300px)) { /* Браузер НЕ підтримує властивість transform з функцією perspective() */ }
Об'єднати кілька умов можна через логічний оператор and. Якщо хоча б одна з умов не підтримується, то стильові правила не застосовуються. 300px)) { /* Браузер одночасно підтримує властивості transform-origin І transform з функцією perspective() */}
Для вибору однієї з умов використовується логічний оператор or. Якщо підтримується хоча б одна з умов, то застосовуються стильові правила. підтримує властивість perspective АБО властивість transform з функцією perspective() */}
Приклад
<!DOCTYPE html> <html> <head> <title>@supports</title> <meta charset="utf-8"> <style> @supports (display: flex) { .no { display: none; } } @supports not (display: flex) { .yes { display: none; } } </style> </head> <body> <p class="yes">Ваш браузер підтримує display: flex.</p> <p class="no">Ваш браузер не підтримує display: flex.</p> </body> </html>
Специфікація
Специфікація | Статус |
---|---|
CSS Conditional Rules Module Level 3 | Можлива рекомендація |
Специфікація
Кожна специфікація проходить кілька стадій схвалення.
- Recommendation ( Рекомендація) — специфікація схвалена W3C і рекомендована як стандарт.
- Candidate Recommendation (Можлива рекомендація) — група, яка відповідає за стандарт, задоволена, як він відповідає своїм цілям, але потрібна допомога спільноти розробників з реалізації стандарту.) — на цьому етапі документ представлений на розгляд Консультативної ради W3C для остаточного затвердження. та внесення поправок для розгляду спільнотою.
- Editor's draft (Редакторська чернетка) — чорнова версія стандарту після внесення змін до редакторів проекту.
- Draft (Чернетка специфікації) — перша чорнова версія стандарту.
Браузери
12 | 28 | 12.1 | 9 | 22 |
4.4 | 22 | 37 | 9.2 |
Браузери
У таблиці браузерів застосовуються такі позначення.
- — властивість повністю підтримується браузером з усіма допустимими значеннями;
- — властивість браузером не сприймається та ігнорується;
- — при роботі можлива поява різних помилок, або властивість підтримується лише частково, наприклад, не все до пусті значення діють або властивість застосовується не до всіх елементів, зазначених у специфікації.
Кількість вказує версію браузера, починаючи з якої властивість підтримується. class="field field-name-field-css-cat field-type-taxonomy-term-reference field-label-hidden">