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

<slot> : l'élément d'emplacement de composant web

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 ⁨janvier 2020⁩.

L'élément HTML <slot> — qui fait partie de la suite technologique des Composants Web — est un emplacement à l'intérieur d'un composant web que vous pouvez remplir avec votre propre balisage, ce qui permet de créer des arbres DOM distincts et de les présenter ensemble.

Attributs

Cet élément inclut les attributs universels.

name

Le nom de l'emplacement (slot en anglais). Lorsque le composant contenant l'emplacement est affiché, l'emplacement est rendu avec l'enfant de l'élément personnalisé qui possède un attribut slot correspondant. Un emplacement nommé est un élément <slot> avec un attribut name. Les emplacements sans nom ont pour valeur par défaut une chaîne vide. Les noms doivent être uniques par arbre d'ombre : si vous avez deux emplacements avec le même nom, tous les éléments ayant un attribut slot correspondant seront assignés au premier emplacement portant ce nom.

Exemples

html
<template id="element-details-template">
  <style>
    details {
      font-family: "Open Sans Light", Helvetica, Arial, sans-serif;
    }
    .name {
      font-weight: bold;
      color: #217ac0;
      font-size: 120%;
    }
    h4 {
      margin: 10px 0 -8px 0;
      background: #217ac0;
      color: white;
      padding: 2px 6px;
      border: 1px solid #cee9f9;
      border-radius: 4px;
    }
    .attributes {
      margin-left: 22px;
      font-size: 90%;
    }
    .attributes p {
      margin-left: 16px;
      font-style: italic;
    }
  </style>
  <details>
    <summary>
      <code class="name"
        >&lt;<slot name="element-name">Remplacer ce nom</slot>&gt;</code
      >
      <i class="desc"
        ><slot name="description">Remplacer cette description</slot></i
      >
    </summary>
    <div class="attributes">
      <h4>Attributs</h4>
      <slot name="attributes"><p>Aucun</p></slot>
    </div>
  </details>
  <hr />
</template>

Note : Vous pouvez retrouver cet exemple sur ce dépôt GitHub (angl.) et observer son fonctionnement en live ici (angl.). Une explication plus détaillée est également disponible avec l'article Manipuler template et slot.

Résumé technique

Catégories de contenu Contenu de flux, contenu phrasé.
Contenu autorisé Contenu transparent.
Évènements slotchange
Omission de balises Aucune, la balise d'ouverture et la balise de fermeture sont obligatoires.
Parents autorisés Tout élément qui accepte du contenu phrasé.
Rôle ARIA implicite Pas de rôle correspondant (angl.)
Rôles ARIA autorisés Aucun role autorisé
Interface DOM HTMLSlotElement

Spécifications

Specification
HTML
# the-slot-element
DOM
# shadow-tree-slots

Compatibilité des navigateurs

Voir aussi