CSS Container Queries

Introduction Introduction

Lorsqu’on veut créer un design responsive, on utilise généralement les media queries pour adapter le design en fonction de la taille de l’écran. Cependant, les media queries ne permettent pas de s’adapter à la taille du conteneur parent.

Dans certaines situations, cela pose problème car on a parfois besoin de définir des styles en fonction de la taille du conteneur parent.

Les containers permettent de définir des styles en fonction de la taille du conteneur parent plutôt que de le faire avec les medias queries et la taille de l’écran.

La syntaxe La syntaxe

container-type container-type

Il faut d’abord définir le type de conteneur avec la règle container-type :

.container {
  container-type: inline-size;
}

la propriété container-type permet de définir le type de container sur lequel on veut appliquer les styles. Il existe plusieurs types de containers :

container-name container-name

Il est conseillé de bien nommer les containers pour lesquels on veut appliquer des styles. Pour cela, on utilise la propriété container-name. On peut d’ailleurs définir une liste de noms en fonction de nos besoins.

.container {
  container-name: small large;
}

Shortand Shortand

On peut combiner les deux propriétés container-type et container-name en une seule propriété container :

.container {
  container: small large / inline-size;
}

@container @container

Comme pour les media queries, on utilise la règle @container pour définir les styles en fonction de la taille du conteneur parent.

.card {
  color: red;

  @container small (320px < width <= 640px) {
    color: blue;
  }

  @container large (640px < width <= 768px) {   
    color: green;
  }
}

Nouvelles unités Nouvelles unités

Container Width &amp; Height Units : Container Width & Height Units :

Container Logical Directions : Container Logical Directions :

Container Minimum &amp; Maximum Lengths : Container Minimum & Maximum Lengths :

Démo Démo

Dans cette démo, on utilise les media queries pour la layout du main. Puis, on utilise les container queries pour les cards dans des containers différents. On calcule également les tailles des titres avec les nouvelles unités (cqi)

Liens Liens

Conclusion Conclusion

Les containers sont une vraie avancée pour lagestion du responsive design en CSS. Comme toute nouvelle fonctionnalité, il faudra un peu de temps pour s’habituer à définir les bonnes pratiques.

La partie sur les containers size queries est terminée pour cet article, j’espère que vous avez apprécié la lecture. La suite logique des containers queries abordera les containers style queries.

Retour à la liste des articles
Github de Samuel Gomez Linkedin de Samuel Gomez Twitter de Samuel Gomez Instagram de Samuel Gomez
Allez en haut