CSS
Запросы функций
Поиск…
Синтаксис
- @supports [условие] {/ * Правила CSS для применения * /}
параметры
параметр | подробности |
---|---|
(property: value) | Вычисляет true, если браузер может обрабатывать правило CSS. Требуется скобка вокруг правила. |
and | Возвращает true, только если выполняются предыдущие и следующие условия. |
not | Отрицает следующее условие |
or | Возвращает true, если либо предыдущее, либо следующее условие истинно. |
(...) | Условия групп |
замечания
Функция обнаружения @supports
с помощью @supports
поддерживается в Edge, Chrome, Firefox, Opera и Safari 9 и выше.
Основное использование @supports
@supports (display: flex) {
/* Flexbox is available, so use it */
.my-container {
display: flex;
}
}
С точки зрения синтаксиса @supports
очень похож на @media
, но вместо определения размера экрана и ориентации, @supports
будет определять, может ли браузер обрабатывать заданное правило CSS.
Вместо того, чтобы делать что-то вроде @supports (flex)
, обратите внимание, что это правило @supports (display: flex)
.
Обнаружение признаков цепочки
Для того, чтобы обнаружить несколько функций одновременно, использовать and
оператор.
@supports (transform: translateZ(1px)) and (transform-style: preserve-3d) and (perspective: 1px) {
/* Probably do some fancy 3d stuff here */
}
Существует также оператор or
оператор, а not
оператор:
@supports (display: flex) or (display: table-cell) {
/* Will be used if the browser supports flexbox or display: table-cell */
}
@supports not (-webkit-transform: translate(0, 0, 0)) {
/* Will *not* be used if the browser supports -webkit-transform: translate(...) */
}
Для получения максимального опыта @supports
попробуйте группировать логические выражения с круглыми скобками:
@supports ((display: block) and (zoom: 1)) or ((display: flex) and (not (display: table-cell))) or (transform: translateX(1px)) {
/* ... */
}
Это будет работать, если браузер
- Поддерживает
display: block
Иzoom: 1
, или - Поддерживает
display: flex
AND NOTdisplay: table-cell
, или - Поддерживает
transform: translateX(1px)
.
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow