75

これに関する多くの情報を見つけることができないようです。

Smashing Magazinehtmlは同じことを言っているよう:rootですが、確かに小さな違いがあるに違いありませんか?

4

3 に答える 3

107

W3C wikiから:

:root疑似クラスは、ドキュメントのルートである要素を表します。HTML では、これは常に HTML 要素です。

CSS は汎用のスタイリング言語です。HTML だけでなく、SVG など、他の種類のドキュメントでも使用できます。

仕様から(強調鉱山):

この仕様は、カスケーディング スタイル シート、レベル 2 リビジョン 1 (CSS 2.1) を定義します。CSS 2.1 は、作成者とユーザーがスタイル (フォントやスペースなど) を構造化ドキュメント (HTML ドキュメントや XML アプリケーションなど)に追加できるようにするスタイル シート言語です。

于 2013-04-09T10:37:02.027 に答える
104

それらの技術的な違いの1つは、疑似クラスであることは(タイプセレクター):rootよりも特異性が高いことです。html

:root {
  color: red
}
html {
  color: green;
}
<div>hello world</div>

したがって、上記の例では、:rootセレクターがセレクターをオーバーライドしhtml、テキストが赤く表示されます。

于 2015-04-19T09:07:21.873 に答える
32

HTML ドキュメントの場合、違いはありません。ルート要素は<html>タグであるためhtml{}、 と:root{}は (特異性の違いを除けば) 意味的に同等です。

ただし、CSS は HTML だけでなく、すべての XML に似たドキュメントに適用できます。そのため:root、ドキュメントの種類に関係なく、ドキュメントのルート要素をターゲットにします。CSS の圧倒的に優勢なユースケースは HTML ドキュメントのスタイリングであるため、ほとんどの人はその違いに混乱しています。

例: CSS を使用して SVG ドキュメントのスタイルを設定できます。スタイルを設定すると、ルート要素は (明らかに;-)) not になりhtmlますsvg次のSVG タグのリストを参照してください。

于 2013-04-09T10:37:23.953 に答える