CSS Container Queries

Publié le :

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 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

container-type

Il faut d’abord définir le 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

Il est conseillé de bien 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

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

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

Container Width & Height Units :

Container Logical Directions :

Container Minimum & Maximum Lengths :

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

Conclusion

Les containers sont une vraie avancée pour la gestion 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.