最近、NetBeans IDE(6.9.1)の使用を開始し、進行中のサイトにスタイルシートを追加するために使用しました。
驚いたことに、1つの要素が自動的に追加されました。
root {
display: block;
}
周りを見回すと、:root
疑似クラスに関する情報はいくつか見つかりましたが、root
要素自体については何も見つかりませんでした。
root
要素とは何ですか?それは何か用途がありますか?
HTMLにはcalledrootという要素はありません。 html要素自体は「ルート要素」(ドキュメント内の他のすべての要素の祖先である要素に与えられた用語です)ですが、これはhtml { }
と一致します。
ただし、 :root
pseudo-class (コロン付き)を参照してください。
ここから: http://www.quirksmode.org/css/root.html
:root疑似要素は、ページ内のすべてのブロックのルートを選択します。最初の包含ブロック。 HTMLでは、これは明らかに
<html>
要素テストスタイルシート:
:root {
background-color: #6374AB;
padding: 50px;
}
:rootセレクターが機能する場合、ページの左右の列は青で、白い中央の列は50ピクセルオフセットされています。
rootは、NetBeansIDEのスタイルシートテンプレート内の要素のプレースホルダーです。これは微積分のダミー変数のようなものです。 root { display: block; }
delete y:のy:にカーソルを置き、yと入力してください。 IDEは、貴重な情報を提供する命令ウィンドウにポップアップ表示されます。これらは、単なるダミー変数のようなルートの意味を実行します。例はem {display: inline; }
です。さらに、ルートは、ルートが開始すると、ブランチとリーフを持つhtmlツリーの最も深い祖先になります。したがって、最初はデフォルトでボックスがあり、デフォルトの表示を次のような他の値に変更しない限り、すべてのブランチとリーフはそのデフォルトに従います。インラインと言います。
誰かがこの古い質問を見つけて情報が必要な場合に備えて、:root
は、ドキュメント全体で使用できるようになるCSSカスタムプロパティまたは「変数」を宣言する例でよく使用されます。例えば:
:root {
--darkGreen: #051;
--myPink: #fce;
}
section {
color: var(--darkGreen);
background: var(--myPink);
}
article h3 {
color: var(--darkGreen);
}
ただし、任意の要素をCSS変数(:root
だけでなく)のセレクターとして使用できるため、html
またはbody
は、ページ上のすべての要素がそれらにアクセスできるようにします。 :root
を使用する正当な理由がある場合は、それを知りたいと思います。
:root
要素は親を持たない要素なので、HTMLのルート要素は<html>
要素だけだと思います。したがって、:root
セレクターを使用してスタイルを設定すると、ドキュメント全体のスタイルを設定します。
(詳細については、こちらをご覧ください: http://webdesign.about.com/cs/css/qt/tipcsschild.htm およびこちら: http://www.w3schools.com/ cssref/sel_root.asp )。
Rootとhtmlには違いがあり、root疑似クラスはCSS3エンティティであり、古いブラウザには影響しません(MSIE 8以下、Opera 9.4以下)
html /* for all web browsers */
{
color:red;
}
次のように、Wordのルートの前にコロンを付ける必要があります...
:root /* for CSS3 web browsers: Chrome, Firefox, MSIE 9+, Safari, Opera 9.5+ */
{
color:blue;
}
これらのCSS行の両方を使用した場合、MSIEバージョン8以下(または互換モードで実行している場合はMSIE 9以降、MSIE 7としてレンダリング)は赤いテキストを表示し、他のほとんどのブラウザーは青いテキストを表示します。
'root'のドキュメントと仕様は、Mozilla Developer Networkにあります: https://developer.mozilla.org/en-US/docs/Web/CSS/:root