în HTML

Elemente interactive HTML5 / WHATWG

Ghid pentru Web Components și Shadow DOM: cum definești puncte de inserție dinamică cu tagul <slot> în interiorul unui <template>.

Sintaxă tag
<slot name="titlu">Titlu implicit</slot>

Tagul <slot> este un element structural esențial al tehnologiei Web Components și al arborilor Shadow DOM. El funcționează ca un marcator de poziție (placeholder) în interiorul unui șablon <template>, permițând dezvoltatorilor să injecteze conținut personalizat din exterior în interiorul unei componente izolate.

Definirea unei componente Web native cu sloturi numite
<!-- 1. Șablonul componentei <card-profil> -->
<template id="sablon-card">
    <style>
        .card { padding: 20px; border-radius: 12px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
        .titlu { color: #1e293b; font-size: 1.25rem; }
    </style>
    <div class="card">
        <!-- Slot numit pentru titlu -->
        <div class="titlu"><slot name="nume">Nume Anonim</slot></div>
        <!-- Slot implicit pentru descriere -->
        <div class="corp"><slot>Descriere indisponibilă.</slot></div>
    </div>
</template>

<!-- 2. Utilizarea componentei în pagină -->
<card-profil>
    <span slot="nume">Elena Vasilescu</span>
    <p>Inginer Software specializat în tehnologii web moderne și accesibilitate.</p>
</card-profil>

Tipuri de Sloturi

  • Slot Implicit (Unnamed Slot): Colectează tot conținutul care nu are specificat un atribut slot="...".
  • Slot Numit (Named Slot): Selectează conținutul care are atributul corespunzător (ex: <h3 slot="nume">).
  • Fallback Content: Textul sau tagurile plasate între <slot>...</slot> sunt afișate automat dacă utilizatorul nu oferă niciun conținut pentru acel slot.