CSS イメージ・スプライト

❮ 前章へ 次章へ ❯

イメージ・スプライト

イメージ・スプライトとは、1 つの画像にまとめられた画像の集まりです。

多くの画像を持つ Web ページは、ロードや複数サーバ・リクエストの生成に長い時間が掛ります。

イメージスプライトを使うことで、サーバへのリクエスト回数を減らし、帯域幅を節約することができます。


イメージスプライト - 簡単な例

3 つの別々な画像を使用する代わりに、1つの画像を使用します ("img_navsprites.gif"):

navigation images

CSS を使用することで、画像の必要な部分だけを表示することができます。

下の例において、CSS は "img_navsprites.gif" イメージのどの部分を表示するかを指定します:

#home {
    width: 46px;
    height: 44px;
    background: url(img_navsprites.gif) 0 0;
}
Try it Yourself ❯

例の説明:

これは、イメージスプライトを使用する最も簡単な方法です。次に、リンクと 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 つの画像が含まれています:

navigation images

これは、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 ❯

例の説明:


❮ 前章へ 次章へ ❯