試験を受けようとしています。私は以前に受けた試験を受けています。
質問:
2つ以上のスタイルシートルールが同じ要素に適用される場合、次のタイプのルールのどれが優先されますか?
a。ブラウザを起源とする宣言
b。ユーザーオリジンを使用した通常の宣言
c。著者を起源とする通常の宣言
d。ドキュメントレベルの宣言
それで、答えはcまたはdでしょうか?cは通常の宣言であり、重要ではないので、dを推測していますが、どこでも決定的な答えを得ることができません
乾杯
試験を受けようとしています。私は以前に受けた試験を受けています。
質問:
2つ以上のスタイルシートルールが同じ要素に適用される場合、次のタイプのルールのどれが優先されますか?
a。ブラウザを起源とする宣言
b。ユーザーオリジンを使用した通常の宣言
c。著者を起源とする通常の宣言
d。ドキュメントレベルの宣言
それで、答えはcまたはdでしょうか?cは通常の宣言であり、重要ではないので、dを推測していますが、どこでも決定的な答えを得ることができません
乾杯
答えはDocument-level declaration
、最後にリンクされたスタイルシートで宣言されている要素にスタイルを適用することです。
テストケース
HTML
<html>
<head>
<link href="stylesheet1.css" rel="stylesheet" type="text/css" />
<link href="stylesheet2.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div>hello<!-- Color applied will be green --></div>
</body>
</html>
CSS
stylesheet1.css
div {
color: red;
}
stylesheet2.css
div {
color: green;
}
試験問題はよくあることですが、試験問題は正しくありません。「ドキュメントレベルの宣言」という表現は適切な用語ではなく、複数の解釈があります。また、意味を明記せずに「普通」という言葉を使っていますが、「なし」を意味しているのではないでしょうか!important
。
答えは「未定」です。「a」には、!important
「b」と「c」(および、何かを意味する場合を除いて「d」!important
)よりも優先されるブラウザスタイルシートルールが含まれているためですが、それを言うのは誤りです。 「a」は一般的に他のものよりも優先されます。編集:仕様は、ブラウザのスタイルシートが!important
影響を及ぼさないように、または影響を及ぼさないように読み取られる可能性がありますが、少なくともFirefox html.cssは!important
(あいまいに)使用します。
私の考えでは、試験の作者はブラウザのスタイルシートでルールの可能性を考えていなかった!important
ので、あなたは「c」と答えるはずです。
編集:オプション「d」はおそらく学生を混乱させるためのものです。HTMLドキュメントに埋め込まれたスタイルシートを意味する場合、それは作成者スタイルのシェルの特殊なケースであり、埋め込まれたものはカスケードルールに影響しません(埋め込まれたスタイルシートの中で)とstyle
リンクされてlink
いる場合、重要なのはHTML要素の配置であり、埋め込まれているものとリンクされているものではありません)。
CSS Cascadingを参照しています。
ということで、リンクから
スタイル シートには、作成者、ユーザー、およびユーザー エージェントという 3 つの異なる起源があります。
そして、それらの間の優先順位は次のとおりです
デフォルトでは、作成者スタイル シートのルールは、ユーザー スタイル シートのルールよりも重みがあります。ただし、"!important" ルールでは優先順位が逆になります。すべてのユーザー ルールと作成者ルールは、UA のデフォルト スタイル シートのルールよりも重みがあります。
カスケード順序は、優先順位の昇順によって定義されます
user agent declarations
user normal declarations
author normal declarations
author important declarations
user important declarations
CSS 固有のルールは後で明らかになります。