TECH I.S.

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; }

自分で試してみる»

例の説明

  • <img id="home" src="img_trans.gif">- src属性を空にすることはできないため、小さい透過イメージのみを定義します。表示される画像は、CSSで指定した背景画像になります。
  • width: 46px; height: 44px;- 使用したい画像の部分を定義します。
  • background: url(img_navsprites.gif) 0 0;- 背景画像とその位置を定義します。(left 0px、top 0px)

これは、画像スプライトを使用する最も簡単な方法です。次に、リンクとホバー効果を使用して拡張します。


画像スプライト - ナビゲーションリストの作成

スプライト画像("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; }

自分で試してみる»

例の説明

  • #navlist {position:relative;} - positionはrelativeに設定され、その内部での絶対配置を可能にします
  • #navlist li {margin:0;padding:0;list-style:none;position:absolute;top:0;}- marginとpaddingは0に設定され、list-styleは削除され、すべてのリスト項目は絶対位置に配置されます
  • #navlist li, #navlist a {height:44px;display:block;} - すべての高さ画像は44pxです

次に、特定の各パーツの配置とスタイルを開始します。

  • #home {left:0px;width:46px;} - 一番左に配置し、画像の幅は46pxです
  • #home {background:url(img_navsprites.gif) 0 0;} - 背景画像とその位置を定義します(left 0px、top 0px)
  • #prev {left:63px;width:43px;} - 右に63px(#home width 46px + アイテム間の余分なスペース)に配置され、幅は43pxです
  • #prev {background:url('img_navsprites.gif') -47px 0;} - 右に47pxの背景画像を定義します(#home width 46px + 1px line divider)
  • #next {left:129px;width:43px;} - 右に129px配置(#prevの開始は63px + #prev width 43px + 余分なスペース)、幅は43px
  • #next {background:url('img_navsprites.gif') -91px 0;} - 背景画像を右に91px定義します(#home width 46px + 1px line divider + #prev width 43px + 1px line divider)

画像スプライト - ホバー効果

次に、ナビゲーションリストにホバー効果を追加します。


ヒント::hoverセレクターは、リンクだけでなく、すべての要素で使用できます。


新しい画像("img_navsprites_hover.gif")には、ホバー効果に使用する3つのナビゲーション画像と3つの画像が含まれています。

navigation images

これは1つの画像であり、6つの個別のファイルではないため、ユーザーが画像の上にカーソルを置いたときに読み込みの遅延が発生することはありません

ホバー効果を追加するコードを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; }

自分で試してみる»

例の説明

  • #home a:hover {background: url('img_navsprites_hover.gif') 0 -45px;} - 3つのホバー画像すべてについて、同じ背景位置を指定します。


プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細