プロジェクトでスプライトイメージを使用してHTTP呼び出しの数を減らしようとしています。したがって、構造は次のようになります。
<div class="parent">
<div class="child-1">Content here</div>
<div class="child-2">Content here</div>
</div>
<div class="outsider">
Content here
</div>
私は3つの画像を持つ1つのスプライトを持っています-それぞれが親の2つの子クラス用で、最後の1つは「outsider」クラス用です。
私はこのようなCSSを与えることを試みることができます:
.parent{
background-image: url("../img/4-in-one-sprite.png");
}
.child-1{
background-position: 0px -10px;
width: 10px;
}
.child-2{
background-position: 0px -20px;
width: 10px;
}
.outsider{
background-position: 0px -30px;
width: 10px;
}
部外者は親に属していないので、その背景はわかりませんよね?したがって、次のように、クラス定義でも同じ背景画像を再指定する必要があります。
.outsider{
background-image: url("../img/4-in-one-sprite.png");
background-position: 0px -30px;
width: 10px;
}
私の疑問は次のとおりです。
ブラウザは部外者クラスに追加の画像リクエストを行いませんか?画像がキャッシュされておらず、そのページの最初の読み込みであると想像してください。
それとも、ブラウザはどういうわけか同じリソースをインテリジェントに理解し、全部で1回だけ呼び出しを行うのでしょうか。
背景画像を提供する場合、ページのレンダリングのどの段階で、ブラウザはリソースを要求しますか?cssを解析している間ですか、それともdomにペイントしている間ですか?
ここでスプライトを使用し、3番目の画像を個別に配置せずにhttp呼び出しを最小限に抑えるための最良の方法は何ですか?