Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

aspect-ratio

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis ⁨juillet 2015⁩.

La caractéristique média CSS aspect-ratio peut être utilisée pour tester le rapport d'aspect de la zone d'affichage.

Syntaxe

La caractéristique aspect-ratio est définie avec un ratio (type CSS <ratio>) qui représente le ratio entre la largeur et la hauteur de la zone d'affichage . C'est une caractéristique d'intervalle ce qui signifie qu'on peut utiliser les variantes préfixées min-aspect-ratio et max-aspect-ratio afin de cibler des règles CSS en fonction d'une valeur minimale ou maximale.

Exemples

Dans l'exemple ci-dessous, un élément <div> est contenu dans un <iframe>. L'iframe crée sa propre zone d'affichage. Redimensionnez l'<iframe> pour voir aspect-ratio en action.

Notez que, lorsque aucune des conditions de requête média n'est vraie, l'arrière-plan devient blanc car aucune des règles ci-dessous ne s'applique au <div> à l'intérieur de l'<iframe>. Essayez de trouver quelles valeurs de largeur et de hauteur déclenchent ce comportement !

HTML

html
<iframe id="outer">
  <div id="inner">
    Watch this element as you resize iframe viewport's width and height.
  </div>
</iframe>

CSS

css
/* Rapport d'aspect minimal autorisé */
/* Sélectionne les rapports d'aspect 8/5 = 1,6 et plus */
@media (min-aspect-ratio: 8/5) {
  div {
    background: #9999ff; /* bleu */
  }
}

/* Rapport d'aspect maximal autorisé */
/* Sélectionne les rapports d'aspect 3/2 = 1,5 et moins */
@media (max-aspect-ratio: 3/2) {
  div {
    background: #99ff99; /* vert */
  }
}

/* Rapport d'aspect exact, placer en bas pour éviter l'écrasement */
@media (aspect-ratio: 1/1) {
  div {
    background: #ff9999; /* rouge */
  }
}

Résultat

Remarquez que min-aspect-ratio: 8/5 définit la borne inférieure à 1,6, donc cette requête média sélectionne les éléments dont le rapport d'aspect est de 1,6 ou plus. max-aspect-ratio: 3/2 définit la borne supérieure, donc cette requête média sélectionne les éléments dont le rapport d'aspect est de 1,5 ou moins. aspect-ratio: 1/1 écrase la règle de rapport d'aspect maximal car elle est déclarée après et sélectionne les éléments dont le rapport d'aspect est exactement 1.

Depuis l'état initial, lorsque vous réduisez la hauteur, le rapport d'aspect commence à augmenter à partir de un. Ainsi, la couleur de fond du div passe de rouge (1) < vert (1,5) < blanc < bleu (1,6).

Spécifications

Specification
Media Queries Level 4
# aspect-ratio

Compatibilité des navigateurs

Voir aussi