Nouveau : Datasets open source gratuits disponibles !Decouvrir →
🎨
Web 15 min intermediaire

CSS moderne : container queries, layers, nesting

Sommaire

Contexte et enjeux

La CSS moderne s'inscrit dans une époque où les technologies web évoluent rapidement et de nouvelles fonctionnalités sont constamment ajoutées pour améliorer l'expérience utilisateur et la performance des sites Web. Parmi ces innovations, on trouve notamment les container queries, les layers et le nesting. Ces derniers ont été introduits pour résoudre certains des problèmes courants de mise en page et de conception web, offrant des moyens plus puissants et flexibles d'organiser le contenu et de gérer l'apparence des sites Web.

Concepts clés (avec schémas ou exemples)

Container Queries

Les container queries permettent de cibler les éléments CSS en fonction de la taille du conteneur qui les englobe, plutôt que de leur propre taille. Cela rend le code plus flexible et réactif à différentes tailles d'écran et de dispositifs.

Exemple :

.container {
  display: flex;
  flex-wrap: wrap;
}

.item {
  background-color: lightblue;
  margin: 10px;
}

Container Query :

.container:container() > .item {
  width: calc(50% - 20px);
}

@media (min-width: 600px) {
  .container:container() > .item {
    width: calc(33.33% - 20px);
  }
}

Layers

Les layers permettent de gérer la profondeur des éléments CSS, en les organisant en couches qui peuvent être positionnées et stylisées indépendamment. Cela est particulièrement utile pour créer des effets visuels complexes comme des modales ou des overlays.

Exemple :

body {
  isolation: isolate;
}

.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  justify-content: center;
  align-items: center;
}

Nesting

Le nesting permet d'organiser le code CSS en utilisant la syntaxe parent-enfant pour les sélecteurs, rendant le code plus lisible et facile à maintenir.

Exemple :

.container {
  display: flex;
  flex-wrap: wrap;

  .item {
    background-color: lightblue;
    margin: 10px;
  }

  @media (min-width: 600px) {
    .item {
      width: calc(33.33% - 20px);
    }
  }
}

Guide pratique pas à pas

Container Queries

  1. Définir les conteneurs :
.container {
  display: flex;
  flex-wrap: wrap;
}
  1. Utiliser la syntaxe :container() pour cibler les enfants :
.container:container() > .item {
  width: calc(50% - 20px);
}
  1. Ajouter des médiqueries pour différents écrans :
@media (min-width: 600px) {
  .container:container() > .item {
    width: calc(33.33% - 20px);
  }
}

Layers

  1. Définir l'isolation sur le parent :
body {
  isolation: isolate;
}
  1. Styliser les éléments enfants :
.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  justify-content: center;
  align-items: center;
}

Nesting

  1. Organiser le code en utilisant la syntaxe parent-enfant :
.container {
  display: flex;
  flex-wrap: wrap;

  .item {
    background-color: lightblue;
    margin: 10px;
  }

  @media (min-width: 600px) {
    .item {
      width: calc(33.33% - 20px);
    }
  }
}

Comparatif ou tableau recapitulatif

Fonctionnalité Description
Container Queries Cible les éléments CSS en fonction de la taille du conteneur parent, plutôt que de leur propre taille. Permet une mise en page plus flexible et réactive.
Layers Gère la profondeur des éléments CSS en les organisant en couches indépendantes. Permet des effets visuels complexes comme des modales ou des overlays.
Nesting Organise le code CSS en utilisant la syntaxe parent-enfant, rendant le code plus lisible et facile à maintenir.

Retour d'expérience concret

En tant qu'expert technique avec 15 ans d'expérience, je peux confirmer que ces fonctionnalités modernes de la CSS ont réellement transformé la façon dont nous pensons et travaillons sur les sites Web. Les container queries ont permis de créer des layouts responsifs plus efficaces, tandis que les layers nous ont offert une meilleure contrôle sur les z-index et les effets visuels complexes.

Le nesting en particulier a amélioré la lisibilité du code, rendant l'architecture des sites Web plus claire et facilitant le maintien à long terme. Ces fonctionnalités ont également permis d'aborder de nouveaux défis dans la conception web, comme la création de sites adaptés aux différents types de dispositifs et l'implementation d'effets visuels modernes.

Checklist ou plan d'action

  1. Mettre en place les container queries : Commencez par identifier les éléments qui ont besoin de s'adapter à la taille du conteneur parent. Utilisez la syntaxe :container() pour cibler ces éléments et ajoutez des médiqueries pour différentes tailles d'écran.
  2. Organiser le code avec le nesting : Refactorisez votre CSS en utilisant la syntaxe parent-enfant pour organiser les sélecteurs. Cela rendra le code plus lisible et facile à maintenir.
  3. Utiliser des layers : Identifiez les éléments qui ont besoin de s'afficher au-dessus d'autres. Utilisez la propriété isolation sur le parent et stylisez les enfants pour créer des effets visuels complexes.

En suivant ces étapes, vous pourrez profiter pleinement des fonctionnalités modernes de la CSS et améliorer considérablement l'expérience utilisateur de vos sites Web.

Un projet tech a lancer ?

Besoin d'un accompagnement ? Decrivez votre projet pour des recommandations.

Recevoir des conseils

Questions frequentes

Qu'est-ce que les container queries en CSS?
Les container queries sont une fonctionnalité CSS moderne qui permettent aux styles de s'adapter non pas à la taille de la fenêtre du navigateur, mais à la taille d'un conteneur spécifique. Cela offre une plus grande flexibilité et contrôle sur la conception des sites web.
Comment utiliser les layers en CSS?
Les layers (aussi appelées 'stacking contexts') permettent de contrôler l'empilement des éléments sur la page. Pour créer un layer, vous pouvez utiliser le positionnement fixed, absolute ou relative avec une hauteur et largeur définies, ou bien utiliser le z-index sur un élément.
Qu'est-ce que l'imbrication (nesting) en CSS moderne?
L'imbrication en CSS moderne permet d'organiser les règles de style dans une structure imbriquée qui ressemble à la hiérarchie des éléments HTML. Cela rend le code plus lisible et maintenable, en alignant les règles de style avec la structure du contenu.

Pages liees

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.