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

container-name

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 février 2023.

La propriété CSS container-name définit une liste de noms de conteneurs de requête utilisée par la règle @container dans une requête de conteneur. Une requête de conteneur applique des styles aux éléments en fonction de la taille ou de l'état de défilement de l'ancêtre le plus proche disposant d'un contexte de compartimentation. Lorsqu'un contexte de compartimentation reçoit un nom, il peut être ciblé spécifiquement en utilisant la règle @container au lieu de l'ancêtre le plus proche possédant la compartimentation.

Syntaxe

css
container-name: none;

/* Un seul nom */
container-name: my-layout;

/* Plusieurs noms */
container-name: my-page-layout my-component-library;

/* Valeurs globales */
container-name: inherit;
container-name: initial;
container-name: revert;
container-name: revert-layer;
container-name: unset;

Valeurs

none

Valeur par défaut. Le conteneur de requête n'a pas de nom.

<custom-ident>

Une chaîne sensible à la casse utilisée pour identifier le conteneur. Les conditions suivantes s'appliquent :

  • Le nom ne doit pas être égal à or, and, not ou default.
  • La valeur du nom ne doit pas être entre guillemets.
  • L'identifiant commençant par un tiret destiné à désigner les identifiants définis par l'auteur (par exemple, --container-name) est autorisé.
  • Une liste de plusieurs noms séparés par un espace est autorisée.

Définition formelle

Valeur initialenone
Applicabilitétous les éléments
Héritéenon
Valeur calculéenone or an ordered list of identifiers
Type d'animationNot animatable

Syntaxe formelle

container-name = 
none |
<custom-ident>+

Exemples

Utiliser un nom de conteneur

L'exemple HTML ci-dessous est un composant de type carte contenant un titre et du texte :

html
<div class="card">
  <div class="post-meta">
    <h2>Titre de la carte</h2>
    <p>Mes détails de publication.</p>
  </div>
  <div class="post-excerpt">
    <p>
      Un aperçu de mon <a href="https://exemple.com">article de blog</a> sur les
      chats.
    </p>
  </div>
</div>

Pour créer un contexte de compartimentation, ajouter la propriété container-type à un élément en CSS. L'exemple suivant crée deux contextes de compartimentation, l'un pour les informations méta de la carte et l'autre pour l'extrait de l'article :

Note : Une syntaxe raccourcie pour ces déclarations est décrite dans la page container.

css
.post-meta {
  container-type: inline-size;
}

.post-excerpt {
  container-type: inline-size;
  container-name: excerpt;
}

L'écriture d'une requête de conteneur via la règle @container applique des styles aux éléments du conteneur lorsque la requête est vraie. L'exemple suivant comporte deux requêtes de conteneur, l'une s'applique uniquement au contenu de l'élément .post-excerpt et l'autre s'applique aux contenus de .post-meta et de .post-excerpt :

css
@container excerpt (width >= 400px) {
  p {
    visibility: hidden;
  }
}

@container (width >= 400px) {
  p {
    font-size: 2rem;
  }
}

Pour plus d'informations sur l'écriture des requêtes de conteneur, consulter la page Les requêtes de conteneur CSS.

Utiliser plusieurs noms de conteneur

Vous pouvez également fournir plusieurs noms à un contexte de conteneur séparés par un espace :

css
.post-meta {
  container-type: inline-size;
  container-name: meta card;
}

Cela vous permet de cibler le conteneur en utilisant l'un ou l'autre des noms dans la règle @container. Ceci est utile si vous souhaitez cibler le même conteneur avec plusieurs requêtes de conteneur où l'une ou l'autre des conditions peut être vraie :

css
@container meta (width <= 500px) {
  p {
    visibility: hidden;
  }
}

@container card (width <= 200px) {
  h2 {
    font-size: 1.5em;
  }
}

Spécifications

Specification
CSS Conditional Rules Module Level 5
# container-name

Compatibilité des navigateurs

Voir aussi