h2
Google Chrome の要素インスペクターを使用して Web ページの要素を調べていますが、適用されているように見える CSS ルールの一部がグレー表示されています。取り消し線はルールが上書きされたことを示しているようですが、スタイルがグレー表示されている場合はどういう意味ですか?
8 に答える
これは、ルールが継承されているが、選択した要素には適用されないことを意味します。
http://code.google.com/chrome/devtools/docs/elements-styles.html#computed_style
ペインには、選択した要素に直接適用できるルールのプロパティのみが含まれます。継承されたプロパティを追加で表示するには、[継承されたプロパティを表示する]チェックボックスをオンにします。このようなプロパティは、淡色表示されたフォントで表示されます。
実例:「Hello、world!」というテキストを含む要素を調べます。
div {
margin: 0;
}
div#foo {
margin-top: 10px;
}
<div id="foo">Hello, world!</div>
マイケル・コールマンは正しい答えを持っています。それに合わせてシンプルな画像を追加したいだけです。彼が含めたリンクには、次の簡単な例があります: http://commandlinefanatic.com/art033ex4.html
HTML/DOM は次のようになります...
p 要素を選択すると、Chrome のスタイル ペインは次のようになります。
ご覧のとおり、p 要素はその祖先 (div) から継承しています。では、なぜスタイルがbackground-color: blue
灰色になっているのでしょうか。継承可能なスタイルが少なくとも 1 つあるルールセットの一部であるためです。その継承可能なスタイルはtext-indent: 1em
background-color:blue
は継承可能ではありませんが、継承可能なものを含むルール セットの一部であり、text-indent: 1em
Chrome の開発者はルール セットを表示するときに完全なものにしたいと考えていました。ただし、継承できないスタイルから継承可能なルール セット内のスタイルを区別するために、継承できないスタイルはグレー表示されます。
これは、ルールが優先度の高い別のルールに置き換えられたことを意味します。たとえば、次のようなスタイルシート:
h2 {
color: red;
}
h2 {
color: blue;
}
インスペクターには、ルールがcolor:red;
グレー表示され、color:blue;
通常どおりに表示されます。
どのルールが継承され、優先度が高いかについては、 CSS の継承を参照してください。
編集:
混同: グレー表示されているルールは未設定のルールで、すべての要素に適用される特別なデフォルト スタイルシートを使用します (すべてのスタイルに値が必要なため、要素をレンダリング可能にするルール)。
webpack を使用している場合、ソース コードで変更された CSS ルールまたはプロパティは、再構築後にページをリロードするとグレー表示されます。これは本当に面倒で、毎回ページをリロードする必要がありました。