このウェブサイトはご利用の端末での閲覧に対応していません。
This website does not support your device.

slot”要素~“name”属性

記事Jul. 2nd,2021
スロットの名前を指定する属性
この記事はHTML Living Standardに対応しています。
この記事はHTML Living Standardに対応しています。

name”属性について

name”属性はslot”要素が表すスロットの名前を指定します。

name”属性はシャドウDOMが追加されてシャドウホストとなった要素の子要素をスロットに割り当てるために使用されます。“name”属性でスロット名が指定されたスロットにはグローバル属性slot”属性で同じスロット名が指定された要素が挿入されます。同じ値のslot”属性を指定された要素が複数ある場合は該当するすべての要素が順番にスロットに挿入されます。

name”属性が指定されていない1個目のスロットにはslot”属性によってスロットが割り当てられていないシャドウホストの子要素が挿入されます。2個目以降の“name”属性が指定されていないスロットは無視されます。

指定できる値

属性値 説明
文字列 スロットの名前

サンプルコード

class SampleElement extends HTMLElement {
constructor() {
super();
this.attachShadow({ mode: "open" });
this.shadowRoot.innerHTML = `
<style>
ul {
width: calc(100% - 50px);
margin: 20px auto;
padding: 10px 10px 10px 25pxpx;
border-radius: 10px;
font-size: 1.5em;
font-weight: bold;
color: #2b2b2b;
background:
linear-gradient(45deg, #83ccd2 25%, transparent 25%, transparent 75%, #83ccd2 75%),
linear-gradient(45deg, #83ccd2 25%, transparent 25%, transparent 75%, #83ccd2 75%);
background-size: 30px 30px;
background-position: 0 0, 15px 15px;
}
</style>
<ul>
<slot name="samplecontent">テキストが入ります</slot>
</ul>
`;
}
}
customElements.define("sample-element", SampleElement);
<sample-element>
<li slot="samplecontent">三毛猫</li>
<li slot="samplecontent">トラ猫</li>
<li slot="samplecontent">白猫</li>
<li slot="samplecontent">黒猫</li>
</sample-element>

<sample-element>
<li slot="samplecontent">鮪</li>
<li slot="samplecontent">鰹</li>
<li slot="samplecontent">鮭</li>
</sample-element>
  • 三毛猫
  • トラ猫
  • 白猫
  • 黒猫
  • 一番上へ
    トップにもどる
    シェアする
    シェアする
    Facebookでシェアする
    ツイート
    Google+でシェア
    Pocket
    はてなブックマーク