ここの仕様 - https://drafts.csswg.org/css-scoping/#slots-in-shadow-treeには次のような注意があります。シャドーDOMスロット内での継承
注:要素をスロットに割り当てることは、割り当てられているスロットから継承していることが明らかです。オリジナルのライトツリーの親と、スロットが割り当てられている深いスロットは、継承に影響しません。
だから私は、要素がスロットされると、その要素に適用されますとcolor
またはbackground-color
のように継承できるスタイルは、それが光DOMの親から継承しないことを考えています。
ただし、次の例ではこれが行われます。
ここに私のコードです。
class CustomTitle extends HTMLElement {
constructor() {
super();
this.attachShadow({ mode: "open" });
this.shadowRoot.innerHTML = "<slot name='title'></slot>";
}
}
window.customElements.define("custom-title", CustomTitle);
custom-title {
border: 2px solid;
display: block;
color: red;
}
<custom-title>
<h1 slot='title'>Hi There!</h1>
</custom-title>
私の期待はh1
はまだ黒になるということですが、それは赤で表示されます。明らかに私は仕様が何を意味するのか、私は何かばかげています。
誰かが私にこれを説明できますか?
である。私の悪い例です。私は上記の質問でそれを修正して、混乱させないようにします。 –
この状況をデモするには? 'とそのスロットが割り当てられるより深いスロット。これは問題の範囲外かもしれませんが、時間がある場合は、例を見つけることができる場所を教えてください。 –
私はちょうどそれが最初のスロットであるということについてちょっと混乱しています。また、私はシャドーツリー内の 'slot'にスタイルを適用してテキストノードをスタイリングしようとしましたが、そこに継承はありません。 https://codepen.io/praveenpuglia/pen/jwMmWd –