|
あなたが最も利用しているのはどれですか?
|
CSSスプライトを使用してサイトの表示速度を改善するはじめにデザイナーが作るデザインはますます手の込んだものになっていますが、その一方で、HTTPリクエストの数と使用される情報量を減らそうとする試みが継続的に行われています。本稿では、その手法の1つであるCSSスプライトについて、基本的な使用例を挙げながら説明していきます。CSSスプライトの使用例リクエストの数と情報量の両方を減らすための1つの手法は、デザインの各所で使われているスタイリング画像(例えばコーナー画像、ライン画像、グラデーション、背景など)を結合することです。まず、図1に示すようなスタイリング画像の基本的な使用例から見てみましょう。図1 四隅が丸いボックス
![]() 図2 ボックスを作成するのに使用される8枚の画像
![]() .Top
{
background-image: url(TopLine.png);
height:10px;
width:100%;
background-repeat:repeat-x;
background-position:top center;
}
.TopLeft
{
float:left;
background-image: url(ULCorner.png);
width:10px;
height:10px;
background-position:top left;
}
Topは、ボックス上部の辺を描くためのものです。ここではheightパラメータとrepeat-xを使用することで、コーナーに合わせてライン画像を適切に配置し、ボックスの幅いっぱいにライン画像を繰り返しています。次のクラスTopLeftは、ボックスの左上コーナーの部分を描くためのもので、heightとwidthに固定値を指定しています。これらのクラスには他のステートメントも存在しますが、それらは画像の結合方法を決定する上で重要な意味を持ちません。基本的には、次に示すように画像を3つのカテゴリに分ける必要があります。
図3 結合された画像
![]() backgroundステートメントを次のような形式に修正する必要があります。background: url(image_file.png) -x -y; backgroundステートメントに-xパラメータと-yパラメータを追加して、左上隅の位置を指定します。ボックスの各コーナーで指定する4つの座標を次に示します。
.Top
{
background: url(hlines.png) -0px -0px repeat-x;
height:10px;
width:100%;
}
.TopLeft
{
float:left;
background: url(Corners.png) -0px -0px;
width:10px;
height:10px;
}
backgroundステートメントに、スプライト画像に対する適切なオフセット量を指定します。まとめCSSスプライトを使用したサンプルサイトができたので、実際にどのような改善がなされたのかをパフォーマンスの観点から確認してみましょう。以下に示すのは、変更前後の結果を示す簡単な表です。
図4 複雑なCSSスプライト画像の例
![]() 著者紹介Chris Bennett(Chris Bennett)
Crowe Horwath LL社のインディアナポリス事務所のマネージャー。連絡先はchris.bennett@crowehorwath.com。
関連記事 関連テーマ 最新トップニュース
|
「端末メーカ各社の海外動向−2009年度上期−」(2月9日)
2009年12月16日(水)開催 10周年記念セミナー
報告レポートはこちら
|