シャドウDOM(V1)例in this tutorialを通って行く、各タブは、名前、デフォルトスロットに対応することは、Webコンポーネント(タブ)を定義:間に中間要素がある場合は、影付きDOMコンテンツを挿入することはできますか?
<fancy-tabs>
<button slot="title">Title</button>
<button slot="title" selected>Title 2</button>
<button slot="title">Title 3</button>
<section>content panel 1</section>
<section>content panel 2</section>
<section>content panel 3</section>
</fancy-tabs>
そして、それはこれにレンダリングするであろう:
<fancy-tabs>
#shadow-root
<div id="tabs">
<slot id="tabsSlot" name="title">
<button slot="title">Title</button>
<button slot="title" selected>Title 2</button>
<button slot="title">Title 3</button>
</slot>
</div>
<div id="panels">
<slot id="panelsSlot">
<section>content panel 1</section>
<section>content panel 2</section>
<section>content panel 3</section>
</slot>
</div>
</fancy-tabs>
既存のAPIを保持するために、私はこのようなコンポーネントを作成したいと思いますが、各タブを独自のカスタム要素として作成することができます。したがって、次のようなAPI:
<fancy-tabs>
<fancy-tab>
<button slot="title">Title</button>
<section>content panel 1</section>
</fancy-tab>
<fancy-tab>
<button slot="title" selected>Title 2</button>
<section>content panel 2</section>
<fancy-tab>
<fancy-tab>
<button slot="title" selected>Title 3</button>
<section>content panel 3</section>
<fancy-tab>
</fancy-tabs>
しかし、それは上記のようなシャドーDOMにレンダリングされます。
つまり、私は、<fancy-tab>
のような中間要素を持っていて、その下のスロット要素を制御しています。私はシャドウルートを持たないCEとして、シャドウルートを開いてCEとして<fancy-tab>
を作成しようとしましたが、カスタムエレメントとして定義していません。
これを行う方法はありますか?またはスロットにがLight DOMの最初の子であるとしますか?