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: blockETzoom: 1ou - Prend en charge l'
display: flexET 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