@kazuhito
Kazuhito Kidachi's Personal Web Site Since 2000

link要素にlayer属性はよ

HTMLのlink要素でカスケードレイヤーを設定する手段はないのか的な話題を社内で目にし、へぇそうだったけと思いつつ、ちょっくら調べてみたんですね。結論、確かにlink要素で外部CSSファイルを読み込む際にレイヤーの名前を指定することは現状できない。

当初、検索してたらProposal: CSS @sheetという話を目にしたんですよ。は? @sheet?? 聞いたことありませんねそんな@ルール......って思ったら、タイトル通り議論中のアイデアだったみたいで、Explainerをざっと読んでみました。

@sheetがどういうものかは割愛しますけど、Explainerの途中でlink要素にsheet属性を指定できるようにする的な話が出てきて。それが可能なら、まず先にカスケードレイヤーを実現するためのlayer属性を定義・実装すべきでないの......とか思ったら、まさにそういう案をとりまとめたページが既にありました(Cascade Layering of HTML Linked Style Sheets)。そりゃそうよね:

One of the primary use-cases for cascade layering is to manage the priority of third-party CSS (libraries and design systems) in relation to site-specific styles. However, there are many situations where authors do not want to use @import for performance reasons, or cannot use @import because of build tooling. Providing this functionality on the HTML <link> tag would bring it in better alignment with the CSS import functionality.

でまぁ最終的に[css-cascade] Provide an attribute for assigning a <link> to a cascade layerに辿り着いたのですけど、ちょっと動きが止まっているように映ります。互換性の問題は根深そうですが、これが解決しない限り、そもそもカスケードレイヤーの普及って難しいんではないかしら。

そういうわけで、他力本願で申し訳ないですが、link要素にlayer属性はよ。なお私自身はまだカスケードレイヤーを使ったことはないけれど、例えば今年に入ってから読んだものに限っても、以下のような記事を読むたび、いずれは使うことになるだろうと思っています;

現在地:ホーム > 覚え書き > 月別アーカイブ > 2025年9月 > link要素にlayer属性はよ