私は HTML5 仕様を読んでおり、要素のscoped
属性については次のように指定しています。style
scoped
属性はブール属性です。style
存在する場合、スタイルが全体ではなく、要素の親要素をルートとするサブツリーのみを対象としていることを示しますDocument
。
style
属性を持ち、要素である親ノードを持つ要素によって宣言されたスタイル シートはscoped
、要素の親要素であるスコープ要素でスコープされますstyle
。
スコープ要素がスコープ スタイル シートを介してアクセスできるかどうか、またはスコープ要素のサブツリーの子ノードだけを介してアクセスできるかどうかを判断しようとしています。
この例を MDN からコピーし、少し変更しました。
<article>
<div>The scoped attribute allows for you to include style elements mid-document. Inside rules only apply to the parent element.</div>
<p>This text should be black. If it is red your browser does not support the scoped attribute.</p>
<section>
<style scoped>
section {
color: red;
}
</style>
<p>This should be red.</p>
</section>
<section>
<p>Another section here</p>
</section>
</article>
サポートされているブラウザー (現時点では Firefox のみ) で例を実行すると、テキストThis should be red
はまだ赤色です。section
ただし、スコープ要素の子としての要素はありません。また、「ここの別のセクション」は赤ではなかったため、スタイルはスコープ要素にのみ適用されました。
この動作が仕様に従っているのか、Mozilla の実装のバグなのか、誰か確認できますか?