HTML辞書ホームへ
HTML要素 辞書 by Sentaro

<slot>

スロット要素。Web Components の Shadow DOM 内で、マークアップを外部から挿入するためのプレースホルダーとして機能します。

info

概要

<slot> 要素は、主に **Web Components** の技術において、**Shadow DOM** の内部に外部のHTMLコンテンツを挿入するための「プレースホルダー」として使用されます。
これにより、コンポーネントの構造(Shadow DOM内)とコンテンツ(Light DOM/外部)を分離し、柔軟な再利用性を実現します。

play_circle

デモ (静的表示)

HTML (Source)
<!-- <my-card>というカスタム要素を想定 --> <my-card> <h3 slot="title">カードのタイトル</h3> <p>これはデフォルトスロットのコンテンツです。</p> </my-card> <!-- <my-card>の Shadow DOM 内 (コードサンプルでは表示されません) --> <!-- <h2><slot name="title"></slot></h2> --> <!-- <div class="content"><slot></slot></div> -->
Preview (Result)
※この要素はWeb Components内でのみ機能するため、静的プレビューでは意図した結果が表示されません。 [カスタム要素の表示エリア]
(カスタム要素の内部構造を想定)

カードのタイトル

これはデフォルトスロットのコンテンツです。

list

属性 (Attributes)

属性名 説明
name スロットの名前を指定します。この属性がない場合、**デフォルトスロット**として機能し、名前のないすべてのコンテンツを受け入れます。
名前が指定されている場合、その名前と一致する slot 属性を持つ要素を受け入れます。
code

実用例

1. デフォルトスロット(名前なし)

<!-- Shadow DOM 内 --> <div class="wrapper"> <p>メインコンテンツ:</p> <slot>コンテンツが提供されない場合のデフォルト</slot> </div>

2. 名前付きスロット

<!-- Shadow DOM 内 --> <header> <slot name="header">ヘッダーコンテンツ</slot> </header> <main> <slot></slot> <!-- デフォルトスロット --> </main>

3. 外部からのコンテンツ挿入(カスタム要素の使用)

<my-custom-element> <h1 slot="header">カスタムヘッダー</h1> <p>カスタム要素のメインボディ</p> </my-custom-element>
lightbulb

知っておくべき重要事項

engineering
Web Components 専用要素
<slot> 要素は、**Shadow DOM** を利用する Web Components のコンポーネントテンプレート内でのみ意味を持ちます。通常のDOMのマークアップ内で単独で使用しても、特別なレンダリング結果は生み出しません。
visibility
デフォルトコンテンツ
<slot> 要素内にコンテンツ(例: <slot>コンテンツが提供されない場合のデフォルト</slot>)を記述すると、コンポーネントの利用者がコンテンツを提供しなかった場合に、そのコンテンツが表示されます。これはフォールバック(代替)コンテンツとして機能します。
私について 利用規約 プライバシーポリシー