これに関する多くの情報を見つけることができないようです。
Smashing Magazinehtml
は同じことを言っているよう:root
ですが、確かに小さな違いがあるに違いありませんか?
これに関する多くの情報を見つけることができないようです。
Smashing Magazinehtml
は同じことを言っているよう:root
ですが、確かに小さな違いがあるに違いありませんか?
W3C wikiから:
:root
疑似クラスは、ドキュメントのルートである要素を表します。HTML では、これは常に HTML 要素です。
CSS は汎用のスタイリング言語です。HTML だけでなく、SVG など、他の種類のドキュメントでも使用できます。
仕様から(強調鉱山):
この仕様は、カスケーディング スタイル シート、レベル 2 リビジョン 1 (CSS 2.1) を定義します。CSS 2.1 は、作成者とユーザーがスタイル (フォントやスペースなど) を構造化ドキュメント (HTML ドキュメントや XML アプリケーションなど)に追加できるようにするスタイル シート言語です。
それらの技術的な違いの1つは、疑似クラスであることは(タイプセレクター):root
よりも特異性が高いことです。html
:root {
color: red
}
html {
color: green;
}
<div>hello world</div>
したがって、上記の例では、:root
セレクターがセレクターをオーバーライドしhtml
、テキストが赤く表示されます。
HTML ドキュメントの場合、違いはありません。ルート要素は<html>
タグであるためhtml{}
、 と:root{}
は (特異性の違いを除けば) 意味的に同等です。
ただし、CSS は HTML だけでなく、すべての XML に似たドキュメントに適用できます。そのため:root
、ドキュメントの種類に関係なく、ドキュメントのルート要素をターゲットにします。CSS の圧倒的に優勢なユースケースは HTML ドキュメントのスタイリングであるため、ほとんどの人はその違いに混乱しています。
例: CSS を使用して SVG ドキュメントのスタイルを設定できます。スタイルを設定すると、ルート要素は (明らかに;-)) not になりhtml
ますsvg
。次のSVG タグのリストを参照してください。