イメージ・スプライトとは、1 つの画像にまとめられた画像の集まりです。
多くの画像を持つ Web ページは、ロードや複数サーバ・リクエストの生成に長い時間が掛ります。
イメージスプライトを使うことで、サーバへのリクエスト回数を減らし、帯域幅を節約することができます。
3 つの別々な画像を使用する代わりに、1つの画像を使用します ("img_navsprites.gif"):
CSS を使用することで、画像の必要な部分だけを表示することができます。
下の例において、CSS は "img_navsprites.gif" イメージのどの部分を表示するかを指定します:
例の説明:
<img id="home" src="img_trans.gif">
- src 属性を空にはできないので、
小さな透明画像を定義しているだけです。表示される画像は、CSS で指定する背景画像ですwidth: 46px; height: 44px;
- 使用したい画像の一部を定義しますbackground: url(img_navsprites.gif) 0 0;
- 背景画像と位置 (左 0px、上 0px) を定義しますこれは、イメージスプライトを使用する最も簡単な方法です。次に、リンクと hover 効果を使用して拡張しようと思います。
ここでは、ナビゲーションリストを作成するために、スプライトイメージ("img_navsprites.gif")を使用します。
リンクが可能で、背景画像もサポートするので、HTMLのリストを使用します。:
#navlist {
position: relative;
}
#navlist li {
margin: 0;
padding: 0;
list-style: none;
position: absolute;
top: 0;
}
#navlist li, #navlist a {
height: 44px;
display: block;
}
#home {
left: 0px;
width: 46px;
background: url('img_navsprites.gif')
0 0;
}
#prev {
left: 63px;
width: 43px;
background: url('img_navsprites.gif') -47px 0;
}
#next {
left: 129px;
width: 43px;
background: url('img_navsprites.gif')
-91px 0;
}
Try it Yourself ❯
例の説明:
次に、各指定部分に対する配置とスタイルを開始します:
次に、ナビゲーションリストにホバー効果を追加したいと思います。
チップ: :hover
セレクタはリンクだけでなく、すべての要素に使用することができます。
新しい画像("img_navsprites_hover.gif")には、 3 つのナビゲーション画像とホバー効果に使用する 3 つの画像が含まれています:
これは、1 つの画像で、6 つの別々なファイルではないため、ユーザが画像上にマウスを乗せた時にも、 ロードの遅延は生じません。
hover 効果を追加するには、コードを 3 行追加するだけです:
#home a:hover {
background: url('img_navsprites_hover.gif') 0 -45px;
}
#prev a:hover {
background: url('img_navsprites_hover.gif') -47px
-45px;
}
#next a:hover {
background: url('img_navsprites_hover.gif') -91px
-45px;
}
Try it Yourself ❯
例の説明: