2

試験を受けようとしています。私は以前に受けた試験を受けています。

質問:
2つ以上のスタイルシートルールが同じ要素に適用される場合、次のタイプのルールのどれが優先されますか?

a。ブラウザを起源とする宣言
b。ユーザーオリジンを使用した通常の宣言
c。著者を起源とする通常の宣言
d。ドキュメントレベルの宣言

それで、答えはcまたはdでしょうか?cは通常の宣言であり、重要ではないので、dを推測していますが、どこでも決定的な答えを得ることができません

乾杯

4

3 に答える 3

2

答えは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;
}
于 2012-11-18T06:51:22.477 に答える
1

試験問題はよくあることですが、試験問題は正しくありません。「ドキュメントレベルの宣言」という表現は適切な用語ではなく、複数の解釈があります。また、意味を明記せずに「普通」という言葉を使っていますが、「なし」を意味しているのではないでしょうか!important

答えは「未定」です。「a」には、!important「b」と「c」(および、何かを意味する場合を除いて「d」!important)よりも優先されるブラウザスタイルシートルールが含まれているためですが、それを言うのは誤りです。 「a」は一般的に他のものよりも優先されます。編集:仕様は、ブラウザのスタイルシートが!important影響を及ぼさないように、または影響を及ぼさないように読み取られる可能性がありますが、少なくともFirefox html.cssは!important(あいまいに)使用します。

私の考えでは、試験の作者はブラウザのスタイルシートでルールの可能性を考えていなかった!importantので、あなたは「c」と答えるはずです。

編集:オプション「d」はおそらく学生を混乱させるためのものです。HTMLドキュメントに埋め込まれたスタイルシートを意味する場合、それは作成者スタイルのシェルの特殊なケースであり、埋め込まれたものはカスケードルールに影響しません(埋め込まれたスタイルシートの中で)とstyleリンクされてlinkいる場合、重要なのはHTML要素の配置であり、埋め込まれているものとリンクされているものではありません)。

于 2012-11-18T07:47:22.323 に答える
0

CSS Cascadingを参照しています。

ということで、リンクから

スタイル シートには、作成者、ユーザー、およびユーザー エージェントという 3 つの異なる起源があります。

そして、それらの間の優先順位は次のとおりです

デフォルトでは、作成者スタイル シートのルールは、ユーザー スタイル シートのルールよりも重みがあります。ただし、"!important" ルールでは優先順位が逆になります。すべてのユーザー ルールと作成者ルールは、UA のデフォルト スタイル シートのルールよりも重みがあります。

カスケード順序は、優先順位の昇順によって定義されます

user agent declarations
user normal declarations
author normal declarations
author important declarations
user important declarations 

CSS 固有のルールは後で明らかになります。

于 2012-11-18T09:08:09.020 に答える