3

次のようなCSSがあるとしましょう。

#element {background-image: url("image1.png");}
#element {background-image: url("image2.png");}

ブラウザは:

  • image1.pngをリクエストしてから、image2.pngをリクエストして表示しますか?または...
  • 最初にCSSを解析し、image2.pngを指定するセレクターが優先され、image2.pngのみを要求して表示することを確認しますか?
4

4 に答える 4

3

最初にCSSを解析してから画像をリクエストするため、image1.pngはダウンロードされません。

于 2012-10-12T14:43:38.333 に答える
1

Chromeと開発者ツールを使用した簡単なテストから:

  • #element存在しない場合、ブラウザにはスタイルを適用するための一致する要素がないため、どちらの画像もダウンロードされません。
  • 存在する場合#element、通常のCSSカスケードおよび特異性ルールが適用され、そのルールがルールのimage2.png表示されるため、ダウンロードされるだけです。image1.png

とはいえ、他のブラウザの動作は異なる場合があります。

于 2012-10-12T14:52:06.967 に答える
0

これをChromeで実行しているWebサイトを実装すると、ブラウザーが最初にCSSを解析し、必要なルールと要求を作成してから要求を行うことがわかります。

CSSの下部にあるCSSルールでは、上部からanyをオーバーライドするため、ブラウザは最終的なルールである画像のみを要求することを認識しています。

于 2012-10-12T14:56:12.357 に答える
-1

ご存知のように、最初にページをリクエストすると、ブラウザはサーバーにリクエストを送信します。次に、ブラウザはページの解析を開始します。

外部リソースへの参照が見つかると、そのリソースに対してさらに別のリクエストを実行します。だから私はそれがまだそれをロードすると思います。

于 2012-10-12T14:38:28.073 に答える