[Edge]。→、
スロットを定義する。¶シャドウ ツリー ルート
slot は HTML の要素 ― ウェブ コンポーネント技術の一部 ― は、ウェブ コンポーネント内で別な DOM ツリーを構築し、いっしょに表示することができる独自のマークアップを入れることができるプレイスホルダーです。
フレージング内容が期待される場所。
透過的。
どちらのタグも省略不可。
典型的にシャドウ ツリーに使用される。もしあれば、SLOT 要素はその割り当てられるノードを表し、そうでなければその内容を表す。
SLOT要素は、別の要素にスロットを割り当てるために使用される: name 属性をもつ SLOT 要素は、その要素がその name 属性の値と一致する値を持つ SLOT 要素を持ち、かつ SLOT 要素がその対応する SLOT の属性値を持つルートのホストを持つシャドウ ツリーの子である場合、任意の要素が割り当てられる名前付きスロットを作成する。
<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"><<slot name="element-name">NEED NAME</slot>></code> <i class="desc"><slot name="description">NEED DESCRIPTION</slot></i> </summary> <div class="attributes"> <h4>Attributes</h4> <slot name="attributes"><p>None</p></slot> </div> </details> <hr> </template>
Note: この完全な例は、element-details で見ることができます(ライブ実行もご覧ください)。また、テンプレートとスロットの利用 にも説明があります。
シャドウ ツリー スロットの名前。
任意の文字列値を含んでもよい。
HTML:
<DIV id=IdDiv> <IMG slot=nameImg src="../Sample/Picture.jpg"> </DIV> <TEMPLATE id=IdTemplate> 画像:<SLOT name=nameImg></SLOT> </TEMPLATE>
JavaScript:
var TempContent=IdTemplate.content.cloneNode(true); //テンプレートの複製を取得 var RE=IdDiv.attachShadow({mode:"open"}); //ホストである IdDiv に Shadow DOM を追加 RE.appendChild(TempContent); // Shadow DOM に複製テンプレートを追加
→HTMLSlotElement.content、Node.cloneNode()、Element.attachShadow()、Node.appendChild()。
→テストを参照