Правило @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">
