Adobe
製品
Creative Suiteファミリー
Photoshopファミリー
Acrobatファミリー
Flash Platform
Digital Marketing Suite
Digital Enterprise Platform
Digital Publishing Suite
その他の製品一覧
ソリューション
コンテンツオーサリング
教育
金融機関
デジタルマーケティングソリューション
その他のソリューション
ラーニング サポート ダウンロード 会社情報
ご購入
アドビストア安心のサポート& サービス
アカデミック版のご購入学生、教職員、個人
ライセンスのご購入企業、教育機関、官公庁
販売パートナー
検索
 
情報 サインイン
ようこそ、 カート 注文状況 ユーザー登録
マイアカウント
サインアウト
サインインの目的 お客様のアカウントや体験版ダウンロード、製品の拡張機能、コミュニティエリアへのアクセスなどを管理するため
Adobe
製品 セクション   検索  
ソリューション 会社情報
サポート ラーニング
サインイン ようこそ、 注文状況 ユーザー登録
Qty:
Subtotal
Checkout
Adobe Developer Connection / Fireworksデベロッパーセンター /

CSS スプライト作成に便利な拡張機能「CSS Sprite Extension」

著者 湯口りさ氏

  • RsStudio

Content

  • CSS スプライト作成に便利な拡張機能「CSS Sprite Extension」
  • 「CSS Sprite Extension」を使ってみよう
  • 「CSS Sprite Extension」のTIPS

作成日

2 June 2010

ページ ツール

Facebookでシェア
Twitterでツイート
LinkedInでシェア
ブックマーク
印刷

Tags

必要条件

ユーザーレベル

すべて

必要な製品

  • Fireworks CS5 (Download trial)

本記事では、最近のWeb制作で利用されている「CSSスプライト(CSS Sprites)」という手法と、その実装を便利にしてくれるFireworksの拡張機能「CSS Sprite Extension」について解説します。

CSSスプライト(CSS Sprites)とは

CSSスプライトは、複数の画像を1つにまとめてCSSのスタイルで部分的に表示し使い回す手法です。

CSSスプライトの仕組み

CSSスプライトはたいてい、今まで独立した1枚画像にしていた部分や画像置換※で表示していた画像と置き換えることができます。

※ 画像置換:HTMLにテキストだけを記載しておいて、CSSのスタイルで文字を隠し、その代わりに画像を表示しているように見せる手法。画像をHTMLからimg要素で呼び出している時とは違い、CSSでデザインを変更したときに一緒に見た目を変えることができるのでデバイスに合わせた幅で表示したい場合にもHTMLを変更する必要がないので便利です。

例えば、既存のサイトにCSSスプライトを適用する場合、サイト内のどの画像をCSSスプライトの対象にするか決定し、選択した画像を1枚の画像になるように並べ、画像の一部分を表示するためのHTMLとCSSを記述します。

図:CSSスプライトの適用イメージ
図:CSSスプライトの適用イメージ

コード:画像を切り取るCSSの例

.csssprite { text-indent:-9999px; overflow: hidden; display:block; background-image: url(../img/csssprite.png); background-repeat: no-repeat; background-position: -120px -78px; /*ターゲット画像の配置位置*/ width: 55px; /*ターゲット画像の幅*/ height: 42px; /*ターゲット画像の高さ*/ }

コードをみてわかるように、CSSスプライトのCSSスタイルでは表示ターゲットになる画像の配置位置と幅・高さをそれぞれのスタイルに記述する必要があります。

通常Webサーバはファイル1つに対して1回以上のリクエストを受け取るので画像の数を1枚にして使いまわせば、Webサーバの負荷が減り、リクエストをしなくて済み、ブラウザ側の表示も速くなるので、Webサイトの表示速度を上げるのに大変有効です。数年前からYouTubeやAmazon、Yahoo!ニュースなどで実際に使われており注目を集めています。

CSSスプライトまとめ

表:CSSスプライトのメリット・デメリット

メリット デメリット
  • 画像の枚数が減ってサーバへのリクエスト回数が減る。
  • 読み込み済みの画像を使いまわせるので、表示も速くなる。
  • CSSのスタイルを定義するとき、それぞれの座標とサイズが必要になり設定が大変。
  • メンテナンスが大変になりがち。
  • やり方によっては、CSSが有効で画像を非表示にしている環境で何も表示されなったり、検索エンジン最適化で不利になる場合がある。

実際にCSSスプライトを使用するには、大量の画像を重ならないように配置をしたり、デザイン変更や差し替えによって配置や大きさが変わった数だけCSSスタイルを再び記述します。大きなメリットがある一方で、CSSスプライト用CSSや画像の作成・メンテナンスは、手作業で行うには大変な作業が必要なことがわかります。

このような作業のうち、特に機械的にできるCSSスタイルの記述が自動で書き出せたり、ある程度画像を自動的に配置できれば、作業上のミスも減り速度アップできるのではないでしょうか?

今回紹介するCSS Sprite Extensionは、1つに集めた画像の管理とCSSの書き出しをFireworksで行うことによって、より簡単にCSSスプライトを使用したり管理できるようにします。

CSS スプライト作成に便利な拡張機能「CSS Sprite Extension」

CSS Sprite ExtensionはFireworks CS4、CS5を使用してCSSスプライトのCSSファイルと画像を生成するFireworksの機能拡張です。

/content/dotcom/jp/devnet/fireworks/articles/css_sprites_cs5/jcr:content/articlecontentAdobe/image_0/file

CSS Sprite Extensionの機能

CSSスプライト用のCSSと画像を作るワークフローの中で、特に大変な作業部分を手助けする機能を備えています。

  • 指定フォルダからの既存画像ファイルインポート機能。
  • Fireworksドキュメント上のオブジェクトの整列機能(ビットマップ、Fireworksシンボル、テキスト、PSDファイルのレイヤーなどに対応)。
  • CSS書き出し機能(簡単なテンプレート対応で案件の要件に沿ったCSSを生成します)
  • 透過PNG(32bit)書き出し機能。

ワークフローによっては全工程を一度に行えるとは限らないので、使いたい部分だけ使えるように設計されています。

Fireworksの機能拡張であるため、FireworksをインストールしているマシンであればOSを問わずローカルマシンで機能します。オリジナルデータの保存もFireworks PNGで行えるため、後編集やちょっとした加工もその場で行えます。それぞれの機能の詳しい説明やオプション設定については、CSS Sprite Extensionの紹介をご覧下さい。

CSS Sprite Extensionのダウンロード

CSS Sprite Extensionインストーラ

  • CSSSpriteExt.mxp
  • csspriteInstaller.zip (Windowsユーザーで管理者権限がない場合)

インストール方法

  1. CSS Sprite Extensionの配布ファイル「CSSSpriteExt.mxp」をダウンロードする。
  2. CSS SpriteExt.mxpをダブルクリックすると、Extension Managerが立ち上がるのでインストールを行う。
  3. Fireworksを起動中の場合には、Fireworksを再起動する。

インストールトラブルシューティング

2番目のステップで、Windows Vistaなどの環境では「この操作の実行に必要となる適切な権限がありません。システム管理者に連絡して、権限を取得してください。」というアラートが出る場合があります。

権限がありませんの警告

その際には、Extension Managerを先に管理者権限で実行しておいてください。

管理者権限で起動
図:Extension Managerを「管理者として実行」する

Extenstion Managerを管理者として実行した後は、Extension Managerの「インストール」をクリックしてCSSSpriteExt.mxpファイルをインストールします。

/content/dotcom/jp/devnet/fireworks/articles/css_sprites_cs5/jcr:content/articlecontentAdobe/image_3/file

Windowsを使用しているけれど管理者権限を使用できない場合

Windows Vistaなどで管理者権限でのExtension Manager起動ができない方向けにjsfで動くインストーラも用意しています。

  1. CSS Sprite ExtensionのVista用配布ファイル「csspriteInstaller.zip」をダウンロードする。
  2. csspriteInstaller.zipファイルを解凍する。
  3. 解凍したらできるFwExtensionInstaller.swfをFireworks CS4で開く
  4. インストールされるリストを確認して、「install」ボタンをクリックする。

複数のFireworksをインストールしている方

Extension Managerはご利用のFireworksのバージョンによって対象となるバージョンが異なります。Fireworks CS5とCS4の両方をインストールされている方は機能拡張を使用したいFireworksのバージョンに合わせてExtension Managerをご利用ください。

「CSS Sprite Extension」を使ってみよう

CSS Sprite Extensionを使って、シンプルなページをCSSスプライトを使ってみましょう。

先に、ロゴとナビゲーションと見出し部分にCSSスプライトを使います。その後、newアイコンの表示、ナビゲーションのhoverの設定をしていきます。

/content/dotcom/jp/devnet/fireworks/articles/css_sprites_cs5/jcr:content/articlecontentAdobe/image_4/file

サンプルサイトで使用するCSSは、説明を簡単にするために一番単純なタイプのものを使用します。CSSが有効で画像表示が無効になっている環境では、CSSスプライトを使用している場所は何も表示されなくなります。実際のサイトで使用する場合にはそのことを理解した上でご利用ください。

必要環境

  • Adobe Fireworks CS5
  • Adobe Dreamweaver CS5
  • csssprite_sample.zip(サンプルサイトとデザインデータ)

作業手順

 

1)Fireworksでデザインファイルから、必要な画像を書き出す

デザインファイルには、あらかじめナビゲーションの部分にだけスライスが設定されています。ナビゲーションの部分の画像を書き出しておきましょう。ここで書き出す画像は直接CSSファイルから参照されるものではないので、デスクトップなどわかりやすい場所に書きだします。

画像を書き出す前に、書き出す画像ファイル名に関係する設定を確認しておきます。メニューから「ファイル>HTMLの設定」で、Fireworks CS4をお使いの方は「ドキュメントの詳細」タブを開き、ステート名を「アンダースコア」+「略称(o,d,od)」に設定してください。

/content/dotcom/jp/devnet/fireworks/articles/css_sprites_cs5/jcr:content/articlecontentAdobe/image_5/file

Fireworks CS5をお使いの方は「ドキュメントの詳細」タブを開き、ステート名を「カスタマイズ」+「なし」に設定してください。カスタマイズを選択したときに出てくるダイヤログは次のように設定します。

/content/dotcom/jp/devnet/fireworks/articles/css_sprites_cs5/jcr:content/articlecontentAdobe/image_6/file

ナビゲーションメニュー部分のスライスを選択したら、「ファイル>書き出し」でスライスを書きだします。保存先はデスクトップに新しいフォルダーを作ってそこを指定します。書き出しオプションは次のようにします。

/content/dotcom/jp/devnet/fireworks/articles/css_sprites_cs5/jcr:content/articlecontentAdobe/image_7/file

書き出したファイルは次の8個です。

/content/dotcom/jp/devnet/fireworks/articles/css_sprites_cs5/jcr:content/articlecontentAdobe/image_8/file
2)Fireworksドキュメントを新規作成して書き出した画像をインポート<Import機能>

Fireworksドキュメントを新規作成します(以下、CSSスプライト画像オリジナルファイル)。このドキュメントの大きさは、幅500×高さ500ピクセルとします。読み込むファイルの幅や高さが、ドキュメントより大きければ自動で調節してくれるので適当なサイズを指定しておきます。

メニューから「ウィンドウ>CSS Sprite用CSSと画像作成」でCSS Sprite Extensionのパネルを開きます。パネルの中のチェックボックスが「Import(読み込み)」だけチェックするようにして、パネルの一番上の「Generate」をクリックして実行します。

/content/dotcom/jp/devnet/fireworks/articles/css_sprites_cs5/jcr:content/articlecontentAdobe/image_9/file

実行するとすぐに、どのフォルダから画像を読み込むのかを指定するダイアログが出てきますので、2)で書き出したフォルダを指定します。読み込まれたファイルは左上揃えで重なった状態で配置されます(今回は、全く同じサイズの画像なので1つしかないように見えます)。

/content/dotcom/jp/devnet/fireworks/articles/css_sprites_cs5/jcr:content/articlecontentAdobe/image_10/file

読み込まれた画像は、ファイル名から拡張子を除いたものがオブジェクトの名前として自動的にセットされます。また、このオブジェクト名がCSSのid(場合によってはclass)として利用されます。

例:ファイル名「menu_about.png」→オブジェクト名「menu_about」

3)ロゴとnewsという見出しをデザインファイルからコピー&ペースト

デザインファイルに戻って、スライスを設定していないロゴとnews(テキストオブジェクト)を選択したらコピーし、2)で作成した「CSSスプライト画像オリジナルファイル」にペーストします。

/content/dotcom/jp/devnet/fireworks/articles/css_sprites_cs5/jcr:content/articlecontentAdobe/image_11/file

シンボル化してあるロゴは、シンボル名(今回は「logo」)がオブジェクト名として利用されます。それ以外のパスやテキストオブジェクトはオブジェクト名がついていない状態と判断されます。これで、「CSSスプライト画像オリジナルファイル」上にすべての必要な画像が揃いました。

4)並び替えを実行<Spread機能>

CSS Sprite Extensionはアクティブドキュメントに対して「並び替え」を実行します。誤ってデザインファイルで「並び替え」を実行しないために、Fireworks上に「CSSスプライト画像オリジナルファイル」だけ開いた状態にします。それから、「Spread」だけにチェックを入れて「Generate」ボタンをクリックします。

/content/dotcom/jp/devnet/fireworks/articles/css_sprites_cs5/jcr:content/articlecontentAdobe/image_12/file

この「並び替え」機能は開いているドキュメントの幅か、一番幅の大きなオブジェクトの幅のどちらか大きい方を上限にオブジェクトを並び替える機能です。

/content/dotcom/jp/devnet/fireworks/articles/css_sprites_cs5/jcr:content/articlecontentAdobe/image_13/file

並び替えと同時に名前のついていないオブジェクトには名前がついています。並び替えの結果が気に入らなければ、ここで修正します。

先にFireworksドキュメント上においておけばどんなソフトで作ったものも配置します。Photoshop PSDファイルのレイヤーや、Illustratorのオブジェクトも例外ではありませんので、FireworksでPSDファイルを開いてそれをそのまま並び替えすることも可能です。Fireworksが表示できるものならばPhotoshopでつけた効果も重なることなく並び替えができます。

5)CSSを書き出す<Export機能>

今回はCSSと画像ファイルを別に置くことを想定しています。まずは、Root folder、CSS folder、Image folderの順に各項目の白枠をクリックして、フォルダを指定します。各フォルダは表を参照して設定してください。

フォルダの指定対応表

項目 フォルダ
Root folder サンプルサイトのルートフォルダ
CSS folder サンプルサイトのルートフォルダ/css
Image folder サンプルサイトのルートフォルダ/images

透過PNGである必要がないので、「need the image file」にはチェックを入れないようにしてください。最後に「Export」に だけチェックを入れた状態で「Generate」をクリックします。

/content/dotcom/jp/devnet/fireworks/articles/css_sprites_cs5/jcr:content/articlecontentAdobe/image_14/file

作業が完了すると、「指定された作業が完了しました。書き出しルートフォルダに移動しますか?」と質問されますが、今回は不要なので「キャンセル」を選択してください。

/content/dotcom/jp/devnet/fireworks/articles/css_sprites_cs5/jcr:content/articlecontentAdobe/image_15/file

なお、「OK」を選択すると、ブラウザで書き出しルートに当たるフォルダを表示します。

書き出されるCSS

今回のように最初からセットされているCSSを使った場合、共通で設定するスタイル「背景画像ファイルのパス」などをまとめたclass「.csssprite」と、画像を表示したい部分それぞれに設定するスタイル「画像の切り取り位置」を記述したid(オブジェクト名がid名となる)からなります。

共通で設定するスタイル

.csssprite {background-image: url(../images/csssprite.png); background-repeat: no-repeat;text-indent:-9999px; overflow: hidden;display:block;}

画像を表示したい部分それぞれに設定するスタイルの一部

/* for #logo */ #logo {background-position: -240px -25px;width: 200px;height: 68px;} /* for #menu_template_o */ #menu_template_o {background-position: -160px -25px;width: 80px;height: 25px;}

オブジェクト名がid名として挿入されますが、CSS Sprite Extensionではオブジェクト名がCSSのid名あるいはclass名として使用できる文字列かどうかはチェックしていません。オブジェクト名をつけるときには、CSSのid名あるいはclass名として使用できる名前にしておく必要があります。

6)画像を書き出す

「ファイル>書き出しプレビュー」でファイルサイズと画質を見ながら画像を書き出します。今回は、PNGで「すべての色を割付」、ディザ0%にして書き出しています。ファイル名を「csssprite.png」に、書き出し場所は「サンプルサイトのルートフォルダ/images」フォルダにします。

7)Dreamweaverでサンプルサイトの「サイト定義」を行う

サンプルサイトのフォルダーをローカルフォルダーに指定してサイト定義します。サンプルサイトは、あらかじめCSSスプライト以外のHTML・CSSができあがっています。

図:ファイルパネル
図:ファイルパネル
8)Dreamweaverを使って、CSSスプライトを適用する

index.htmlを開きます。レイアウトを決めるCSSはすでに設定してあります。

CSSと画像は、Dreamweaverで定義済みのサイト内のフォルダにあるのでまずindex.htmlにcsssprite.cssファイルをリンクします。CSSファイルをリンクするには、CSSスタイルパネルの右上のアイコンから「スタイルシートを添付する」を選ぶか、図のようにCSSスタイルパネルの下方にあるリンクアイコンをクリックして、csssprite.cssを選択します。

/content/dotcom/jp/devnet/fireworks/articles/css_sprites_cs5/jcr:content/articlecontentAdobe/image_17/file

それぞれの要素に、プロパティインスペクターでクラスに「.csssprite」をつけ、idを指定します。プロパティインスペクタは未使用のIDのみを選択できるので、ここで指定すると間違いが防げます。

a)ロゴと見出し

ロゴと見出しはリンクのないテキストです。文言を包むH1タグ、H2タグそれぞれに、クラス「.csssprite」をつけ、idを指定します。

/content/dotcom/jp/devnet/fireworks/articles/css_sprites_cs5/jcr:content/articlecontentAdobe/image_18/file

b)ナビゲーション

リンクを含む部分でCSSスプライトを使うときは、Aタグに「.csssprite」をつけ、idを指定します。その外側に使ってしまうと、かなり工夫しないと一部のブラウザでマウスカーソルを乗せたときに指カーソルにならなくなってしまいます。

図:タグセレクタでAタグを選択できているかどうか念のため確認
図:タグセレクタでAタグを選択できているかどうか念のため確認

各タグにつけるid一覧

テキスト idをつけるタグ id
ロゴ(CSS Sprite Extension) h1 #logo
見出し
news
h2 #sp0
About a menu_about
Install a menu_install
Howto a menu_howto
Template a menu_template
9)配置の工夫で「new」表示もCSSスプライトを使う

今度は、HTMLのタグを加えずにclass属性を追加することでNEWSの記事に「new」表示を出してみましょう。実際に作業を始める前に今までとの違いを見てみます。

/content/dotcom/jp/devnet/fireworks/articles/css_sprites_cs5/jcr:content/articlecontentAdobe/image_20/file

「new」の表示されるエリアはロゴや見出しと違って、「new」の幅とエリアの幅が等しくなく、高さも内容によって可変で縦方向に伸びる可能性のある部分です。

HTMLの構造上、画像を完全に切り取って表示できない場合は、表示したいオブジェクトの下や右側に他のオブジェクトがあるとターゲット以外のオブジェクトが見えてしまうことになります。

図:悪い配置の例
図:悪い配置の例

それでは、Fireworksに戻り、デザインファイルからコピーしてきた「new」画像を画面外左下に配置しましょう。「new」の下や右側に何もない場所です。

/content/dotcom/jp/devnet/fireworks/articles/css_sprites_cs5/jcr:content/articlecontentAdobe/image_22/file

このままでは、カンバスのサイズが小さいので、「変更>カンバス>カンバスを合わせる」で正しいサイズにカンバスを修正します。

/content/dotcom/jp/devnet/fireworks/articles/css_sprites_cs5/jcr:content/articlecontentAdobe/image_23/file

newの配置ができたので、CSS Sprite Extensionで「Export」を実行し、CSSを書き換えます。また、画像を書き出してcsssprite.png新しいものに差し替えておきます。

書き出したばかりのcsssprite.cssの中から、「#new」となっているところを探して書き換えます。何度も登場する可能性のあるスタイルなので、「.new」にしておきます。

変更前

/* for #new */ #new {background-position: 0 -93px;width: 36px;height: 17px;}/*太字部分を削除する*/

変更後

/* for .new */ .new {background-image: url(../images/csssprite.png);background-repeat: no-repeat;background-position: 0 -93px;} /*太字部分を.cssspriteからコピーしてきた*/

今度はDreamweaverに再び戻り、newアイコンを表示したい「News」の項目のddタグにclass="new"を追加します。

/content/dotcom/jp/devnet/fireworks/articles/css_sprites_cs5/jcr:content/articlecontentAdobe/image_24/file
10)ナビゲーションのリンクにhoverを設定する

csssprite.cssファイルにはすでにhoverした時のスタイルは定義済みなので、CSSを書き換えて:hoverとして動くようにしてやります。

/* for #menu_template_o */ #menu_template_o {background-position: -160px -25px;width: 80px;height: 25px;}

「_o 」を「:hover 」に書き換えます。

/* for #menu_template:hover */ #menu_template:hover {background-position: -160px -25px;width: 80px;height: 25px;}

一つずつ直してもいいのですが、数が多いと間違いやすいので、ここでは置換機能を使います。

index.htmlの関連ファイルにある、csssprite.cssをクリックします。その中から、「_o 」の文言を1箇所選択して反転させます。「編集>検索/置換」で「置換」「:hover 」にして、「すべて置換」します。

/content/dotcom/jp/devnet/fireworks/articles/css_sprites_cs5/jcr:content/articlecontentAdobe/image_25/file

「ライブビュー」や「ブラウザでプレビュー」で確認すれば、ナビゲーション部分にhoverの効果が付いたことを確認できます。

図:ライブビューで確認
図:ライブビューで確認

以上で、シンプルなサイトにCSSスプライトを使用するチュートリアルはおしまいです。

「CSS Sprite Extension」のTIPS

既存Webサイトへの適用

既存WebサイトにCSSスプライトを適用する場合には、どの画像を対象にするかを決めそれを一つのフォルダに入れておきます。

その後は、Import→Spread→配置調整→Exportして、今回のサンプルサイトと同じようにDreamweaverでHTMLの方の設定を行います。

既存Webサイトへ適用する前に

既存WebサイトでCSSスプライトの導入を検討する場合、アクセス数の増加や動的生成のCMSによるサーバ負荷を軽減することが目的であることが多いと思います。

例えば、今回のサンプルサイトのようにCSSスプライトで表示する画像が少ない場合でも、リクエスト回数は倍以上の差があります。

使用前と使用後のブラウザから送られるリクエスト回数を比較する(Firebug使用)

図:CSSスプライトを使って作った場合
図:CSSスプライトを使って作った場合
図:CSSスプライトを使わないで作った場合
図:CSSスプライトを使わないで作った場合

しかし、表示速度だけを見ると小規模・単純なそれほど威力を発揮しません。サンプルサイトの場合、10回の試行の平均は20ms程度CSSスプライトを使った方が早かったのですが、Webブラウザや条件によってはCSSスプライトを使った表示の方が遅いものもあります。JavascriptやCSSなどの最適化などCSSスプライト以外の表示高速化・ファイルサイズ軽量化の手法もあわせて検討する必要があります。

自社・プロジェクトに応じた書式のCSSを出力

CSS Sprite Extensionには、CSSの書き出しを制御するテンプレートとテンプレート変数があり、テンプレートはCSSスプライトで使用されるCSSを効率良くフォローするために、2つに分かれています。このテンプレートは「Generate」ボタンをクリックしたときに自動で保存されます。

テンプレートで使える変数やテンプレートの詳細は配布サイトでご確認ください。

テンプレートの種類
  • once Template…オブジェクトとは無関係に全体で1回だけ書き出される。共通で使えるスタイルを出力することを想定。
  • repeat by elements Template…オブジェクトごとに書き出される。主に切り取り位置や幅・高さを出力することを想定。
テンプレートの例

テンプレートは書き出したいCSSが先に分かっていれば簡単に作ることができます。例ではわかりやすいようにコメントをつけていますが、テンプレートを作るときには、書き出したいCSSを分類を頭の中やメモで決めておきます。

例1:CSSが有効で画像が無効時も影響を受けにくいCSSテンプレートとHTML

html

<ul id="navi"> <li><a href="#" class="csssprite" id="menu_about"><span>About</span></a></li> <li><a href="#" class="csssprite" id="menu_install"><span>Install</span></a></li> </ul>

css

/* 共通 */ #navi {position:relative;z-index:10;} #navi span {position: relative; z-index: -1;} .csssprite {background-image: url(../images/csssprite.png);background-repeat: no-repeat; text-indent:-9999px;overflow: hidden;display:block;} /* オブジェクトごとに変化。 */ #menu_about {background-position: -80px -25px;width: 80px;height: 25px;} #menu_install {background-position: -227px 0;width: 80px;height: 25px;}

テンプレートはこうなります。

once Template(CSS Sprite Extension用テンプレート)

#navi {position:relative;z-index:10;} #navi span {position: relative; z-index: -1;} .csssprite {background-image: url(_image_);background-repeat: no-repeat; text-indent:-9999px;overflow: hidden;display:block;}

repeat by elements Template(CSS Sprite Extension用テンプレート)

#_id_ {background-position: _left_ _top_;width: _width_;height: _height_;}

デザインによっては透過gif/pngが使えないことにご注意ください。

例2:IMGタグを使用する場合のCSSテンプレートとHTML

html

<div class="step"><img src="flow.png" alt="ステップ1" id="step1" /></div> <div class="step"><img src="flow.png" alt="ステップ2" id="step2" /></div> <div class="step"><img src="flow.png" alt="ステップ3" id="step3" /></div>

css

.step {overflow:hidden;width:50px;height:100px;}/* 共通 */ /* オブジェクトごとに変化。数字部分はbackground_positionの指定で使われるleftの値 */ #step1 {margin-left:0;} #step2 {margin-left:-50px;} #step3 {margin-left:-100px;}

この場合も、共通で使えるスタイルとオブジェクトごとに設定するスタイルを分けて考えてそれぞれ入れ替えます。

once Template(CSS Sprite Extension用テンプレート)

.step {overflow:hidden;width:50px;height:100px;}

repeat by elements Template(CSS Sprite Extension用テンプレート)

#_id_ {margin-left:_left_;}

CSS Sprite Extensionには複数のテンプレートを保存する機能はありませんが、このような感じでプロジェクトごとにテンプレートをテキストファイルなどで保存しておけば、いつでもテンプレートを入れ替えることができます。

特定のオブジェクトのCSSだけを取得する

後から追加したり一部だけオブジェクトを移動した場合、CSS全体を出力しなおすよりも変更した部分だけのCSSがほしいときがあります。通常は、もう一度CSSファイルに書き出せばいいのですが、サンプルサイトのようにDreamweaverで編集済みの場合、ファイルを上書きしてしまうと今まで動いていた機能が動かなくなる場合もあります。

CSS Sprite Extensionには選択したオブジェクトのCSS(repeat by elements Templateの部分)だけを、クリップボードに保存する機能があります。少しの変更ではこの機能を活用します。

  1. 書き出したいオブジェクトを選択する
/content/dotcom/jp/devnet/fireworks/articles/css_sprites_cs5/jcr:content/articlecontentAdobe/image_29/file
  1. Exportにだけチェックを入れて「Generate」をクリックする
  2. 「選択したオブジェクトだけCSSコードをクリップボードにコピーしますか?」と表示されたら「はい」をクリックする
/content/dotcom/jp/devnet/fireworks/articles/css_sprites_cs5/jcr:content/articlecontentAdobe/image_30/file
  1. クリップボードにCSSがコピーされているので、目的のCSSファイルに貼り付ける

この例でコピーされるCSS

/* for #news */ #news {background-position: 0 -75px;width: 36px;height: 17px;} /* for #logo */ #logo {background-position: -240px -4px;width: 200px;height: 68px;} /* for #menu_install_s1 */ #menu_install_s1 {background-position: -160px -50px;width: 80px;height: 25px;} /* for #menu_install_s2 */ #menu_install_s2 {background-position: -80px -50px;width: 80px;height: 25px;} /* for #menu_template_s1 */ #menu_template_s1 {background-position: 0 -50px;width: 80px;height: 25px;}

CSS Sprite Extensionは一度生成した後のメンテナンスでも十分使って行けます。

終わりに

CSS Sprite Extensionは、Webサイト制作の現場にある多様なワークフローの中でちょっと楽ができるをコンセプトに開発しています。手作業で一つひとつやっていくのには手間のかかるCSSスプライトも、使い慣れたFireworksと機能拡張を使えば自分たちのワークフローに合わせてつつ、かなり手軽に扱えるようになるはずです。
他の生成Webサービスを使っている方やFireworks以外のソフトウェアで画面デザインをされている方もぜひお試しください。

また、CSS Sprite Extensionへのご要望・ご質問がありましたら紹介サイトもしくはTwitter(http://twitter.com/risay)にどうぞ。

Tutorials & Samples

Tutorials

  • Creating and exporting Fireworks graphics as FXG files for Flash Catalyst
  • Creating jQuery Mobile website themes in Fireworks
  • Extracting CSS properties from Fireworks design objects

Samples

  • Twitter Trends
  • Flex 4.5 reference applications
  • Mobile Trader Flex app on Android Market

Fireworks Forum

More
02/07/2012 Dumb question - rectangles with straight right angled corners
12/16/2008 Disappearing Mouse Cursor?
01/13/2012 Survey: Blend mode options in Brush tool?
01/25/2012 after a update of cs3 to 9.0.1 styles are broken

Fireworks Cookbooks

More
09/07/2011 How do I use FXG XML markup in Shape subclasses?
10/15/2010 Flex4 Dotted Line
06/25/2010 ComboBox that uses a NativeMenu (Air API)
05/21/2010 Localizing a Creative Suite 5 extension

製品

  • Creative Suiteファミリー
  • Photoshopファミリー
  • Acrobatファミリー
  • Flashプラットフォーム
  • Digital Marketing Suite
  • Digital Enterprise Suite
  • Digital Publishing Suite
  • モバイルアプリ

ソリューション

  • カスタマーエクスペリエンスマネジメント
  • コンテンツオーサリング
  • デジタルマーケティング

業種別ソリューション

  • 教育
  • 金融機関

サポート

  • ヘルプ&サポート
  • 注文と返品
  • ダウンロードに関するヘルプ
  • ユーザー登録に関するヘルプ

ラーニング

  • ADC: Adobe Developer Center
  • Adobe TV
  • Design Magazine
  • Photoshop Magazine
  • Focus In

ご購入方法

  • アドビストア
  • アカデミック版のご購入
  • ライセンスのご購入

ダウンロード

  • Adobe Reader
  • Adobe Flash Player
  • Adobe AIR
  • Adobe Shockwave Player

会社情報

  • プレスルーム
  • パートナープログラム
  • 企業の社会的責任(英語)
  • 採用情報
  • 投資家の皆様へ(英語)
  • イベント&セミナー
  • Legal(英語)
  • お問い合わせ
国・地域および言語の選択 日本(変更)
国・地域および言語の選択 閉じる

North America

Europe, Middle East and Africa

Asia Pacific

  • Canada - English
  • Canada - Français
  • Latinoamérica
  • México
  • United States

South America

  • Brasil
  • Africa - English
  • Belgium - English
  • Belgique - Français
  • België - Nederlands
  • България
  • Česká republika
  • Danmark
  • Eastern Europe - English
  • Eesti
  • España
  • France
  • Deutschland
  • Hrvatska
  • Ireland
  • Israel - English
  • Italia
  • Latvija
  • Lietuva
  • Luxembourg - Deutsch
  • Luxembourg - English
  • Luxembourg - Français
  • Magyarország
  • Middle East and North Africa - English
  • Moyen-Orient et Afrique du Nord - Français
  • Nederland
  • Norge
  • Österreich - Deutsch
  • Polska
  • Portugal
  • România
  • Россия
  • Schweiz - Deutsch
  • Suisse - Français
  • Svizzera - Italiano
  • Slovenija
  • Slovensko
  • Srbija
  • Suomi
  • Sverige
  • Türkiye
  • Україна
  • United Kingdom
  • Australia
  • 中国
  • 中國香港特別行政區
  • Hong Kong S.A.R. of China
  • India - English
  • 日本
  • 한국
  • New Zealand
  • Pacific - English
  • 台灣

Southeast Asia

  • Includes Indonesia, Malaysia, Philippines, Singapore, Thailand, and Vietnam - English

Copyright © 2012 Adobe Systems Incorporated. All rights reserved.

当Webサイトをご利用のお客様は、利用条件およびプライバシーポリシー(2011年9月30日更新)にご同意いただいたものとみなされます。

Reviewed by TRUSTe: site privacy statement