CSS
Requêtes sur les fonctionnalités
Recherche…
Syntaxe
- @supports [condition] {/ * Règles CSS à appliquer * /}
Paramètres
Paramètre | Détails |
---|---|
(property: value) | Évalue true si le navigateur peut gérer la règle CSS. La parenthèse autour de la règle est requise. |
and | Renvoie true uniquement si les conditions précédentes et suivantes sont vraies. |
not | Annule la condition suivante |
or | Renvoie true si la condition précédente ou suivante est vraie. |
(...) | Conditions des groupes |
Remarques
La détection des fonctionnalités à l'aide de @supports
est prise en charge dans Edge, Chrome, Firefox, Opera et Safari 9 et @supports
ultérieures.
Utilisation de base @supports
@supports (display: flex) {
/* Flexbox is available, so use it */
.my-container {
display: flex;
}
}
En termes de syntaxe, @supports
est très similaire à @media
, mais au lieu de détecter la taille et l'orientation de l'écran, @supports
détecte si le navigateur peut gérer une règle CSS donnée.
Plutôt que de faire quelque chose comme @supports (flex)
, notez que la règle est @supports (display: flex)
.
Détection des fonctions de chaînage
Pour détecter plusieurs fonctionnalités à la fois, utilisez l'opérateur and
.
@supports (transform: translateZ(1px)) and (transform-style: preserve-3d) and (perspective: 1px) {
/* Probably do some fancy 3d stuff here */
}
Il y a aussi un opérateur or
un opérateur et un opérateur 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(...) */
}
Pour l'expérience ultime @supports
, essayez de regrouper les expressions logiques avec des parenthèses:
@supports ((display: block) and (zoom: 1)) or ((display: flex) and (not (display: table-cell))) or (transform: translateX(1px)) {
/* ... */
}
Cela fonctionnera si le navigateur
- Supporte l'
display: block
ETzoom: 1
ou - Prend en charge l'
display: flex
ET pasdisplay: table-cell
, ou - Prend en charge la
transform: translateX(1px)
.
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow