カテゴリー
最新コメント
男なら age [02/12]
レス 私だ [02/12]
本番OK age [02/12]
レス 俺だ [02/11]
10万円 私だ [02/08]
10万円 私だ [02/08]
本番OK ありません [02/05]
レス わかりません [02/04]
最新トラックバック
画像の上にポインタを乗っける(マウスオーバー、オンマウス)とその画像が切り替わり、さらにクリックするとまた画像が変わる。
そんなインタラクティブな動きを、JavaScirptを使わずHTMLとスタイルシートCSSだけで実現することが出来ます。
ボタンみたいで、文字やただの画像でのリンクとは一味違った感じが出せます。
今回紹介するCSSは、横に並んだトップコンテンツなどを作るのに適しています。
そんなインタラクティブな動きを、JavaScirptを使わずHTMLとスタイルシートCSSだけで実現することが出来ます。
ボタンみたいで、文字やただの画像でのリンクとは一味違った感じが出せます。
今回紹介するCSSは、横に並んだトップコンテンツなどを作るのに適しています。
まずその仕組みを簡単に説明します。
画像を切り替えるには、最低でも2枚の画像が必要です。
今回紹介する方法では、通常時、マウスオーバー時、クリック時の3つの画像が必要になります。
では、3枚の画像をそれぞれアップロードすればいいのでしょうか。
しかしその方法では、上のように4つ並べると、3×4=12枚もの画像を用意してアップロードしなくてはいけません。
それは面倒なことだし、3枚の画像がそれぞれ違う場所にあると、マウスオーバー時やクリック時の処理に時間がかかってしまいます。
画像の枚数を節約し、さらに処理を速くするには・・・
画像を1枚にし、それをずらせばいいのです!
今回はCSSを使って画像をずらし、あたかも画像が切り替わってるように見せる技術の紹介です。
初めての人にはとってはとても難しいかもしれません。でも諦めずに頑張れば必ずできます。コードの書き換えが一番重要だと思います。
■準備段階1 画像を用意する

同じサイズの画像が、3つ縦に並んだ状態の画像を作ってください。
※「ボタン工房」を使えば簡単に作る事が出来ます。
「ボタン工房」 - WEBページ製作者向けのボタン作成ツール
この時、「100px×20px」というような、一つの画像の縦サイズと横サイズ把握しておいてください。
上の画像は、「100px×20px」の画像が3つ縦に並んでいて、合計のサイズは「100px×60px」です。
この部分のサイズが「100px×20px」
(pxはピクセルの意味で、サイズの単位です。 参考: ピクセル - Wikipedia / 長さ(length)の単位)
ペイントでのサイズの求め方

左メニューの「選択」をクリックし、求めたい部分をドラッグで選択してください。すると右下にその部分のサイズ(単位:px)が表示されます。
■準備段階2 画像をアップロードする
無料ホームページスペースなどに画像をアップロードします。
FC2の無料ホームページとFTP転送~サービス登録~
FC2の無料ホームページとFTP転送~FFFTPの設定~
アップロードした画像へのURLを把握しておいてください。
(例)http://andornot.nobody.jp/picture/exbotan1.png
いよいよHTMLとCSSの記述方法です。





上の5枚の画像と、以下の情報を例にして紹介します。
【一つの画像の縦サイズ(px)】20
【一つの画像の横サイズ(px)】100
【画像のURL】
http://andornot.nobody.jp/picture/exbotan1.png
http://andornot.nobody.jp/picture/exbotan2.png
http://andornot.nobody.jp/picture/exbotan3.png
http://andornot.nobody.jp/picture/exbotan4.png
http://andornot.nobody.jp/picture/exbotan5.png
<CSSのソース>
ul#navigation {
position: relative;
width: 【一つの画像の横サイズ×横に並べたい画像の数 (例)100×5=500】-px;
margin: 0;
height: 【一つの画像の縦サイズ×(例)20】px;
list-style: none;
overflow: hidden;
}
ul#navigation li a {
height: 【一つの画像の縦サイズ(例)20】px;
position: absolute;
overflow: hidden;
padding: 【一つの画像の縦サイズ(例)20】px 0 0 0;
text-indent: -100em;
text-decoration: none;
top: 0;
width: 【一つの画像の横サイズ(例)100)】px;
}
html>body ul#navigation li a{
height: 0;
}
li#botan1 a{
background: transparent url('【画像1へのURL(例)http://andornot.nobody.jp/picture/exbotan1.png】') no-repeat 0 0;
left: 【一つの画像の横サイズ×0(例)0】px;
}
li#botan2 a{
background: transparent url('【画像2へのURL(例)http://andornot.nobody.jp/picture/exbotan2.png】') no-repeat 0 0;
left: 【一つの画像の横サイズ×1(例)100】px;
}
li#botan3 a{
background: transparent url('【画像3へのURL(例)http://andornot.nobody.jp/picture/exbotan3.png】') no-repeat 0 0;
left: 【一つの画像の横サイズ×2(例)200】px;
}
li#botan4 a{
background: transparent url('【画像4へのURL(例)http://andornot.nobody.jp/picture/exbotan4.png】') no-repeat 0 0;
left: 【一つの画像の横サイズ×3(例)300】px;
}
li#botan5 a{
background: transparent url('【画像5へのURL(例)http://andornot.nobody.jp/picture/exbotan5.png】') no-repeat 0 0;
left: 【一つの画像の横サイズ×4(例)400】px;
}
li#botan1 a:hover,
li#botan2 a:hover,
li#botan3 a:hover,
li#botan4 a:hover,
li#botan5 a:hover{
background-position: 0px -【一つの画像の縦サイズ(例)20】px;
}
li#botan1 a:active,
li#botan2 a:active,
li#botan3 a:active,
li#botan4 a:active,
li#botan5 a:active{
background-position: 0px -【一つの画像の縦サイズ×2(例)40】px;
}
<HTMLのソース>
<ul id="navigation">
<li id="botan1"><a href="リンク先のURL" title="【1】" accesskey="0">【1】</a></li>
<li id="botan2"><a href="リンク先のURL" title="【2】" accesskey="1">【2】</a></li>
<li id="botan3"><a href="リンク先のURL" title="【3】" accesskey="2">【3】</a></li>
<li id="botan4"><a href="リンク先のURL" title="【4】" accesskey="3">【4】</a></li>
<li id="botan5"><a href="リンク先のURL" title="【5】" accesskey="4">【5】</a></li>
</ul>
以上です。
青色の部分はそれぞれのボタンのサイズやURLに合わせて、好きなように書き換えてください。【】も消してね。
赤色の部分は書き換えても書き換えなくてもOKです。
ただし、例えば「li#botan1 a:hover,」の部分を「li#home a:hover,」と書き換えたならば、「li#botan1 a:active, 」や「<li id="botan1">」のbotan1も同様に、homeに書き換えてください。
CSSとHTMLのソースを書き足したり消したりすれば、コンテンツの数を変えられます。
この色が付け足した部分です。
<CSSのソース>
(中略)
}
li#botan5 a{
background: transparent url('【画像5へのURL(例)http://andornot.nobody.jp/picture/exbotan5.png】') no-repeat 0 0;
left: 【一つの画像の横サイズ×4(例)400】px;
}
li#botan6 a{
background: transparent url('【画像6へのURL】') no-repeat 0 0;
left: 【一つの画像の横サイズ×5(例)500】px;
}
(中略)
li#botan4 a:hover,
li#botan5 a:hover,
li#botan6 a:hover{
background-position: 0px -【一つの画像の縦サイズ(例)20】px;
}
(中略)
li#botan4 a:active,
li#botan5 a:active,
li#botan5 a:active{
background-position: 0px -【一つの画像の縦サイズ×2(例)40】px;
}
<HTMLのソース>
(中略)
<li id="botan4"><a href="リンク先のURL" title="4" accesskey="3">4</a></li>
<li id="botan5"><a href="リンク先のURL" title="5" accesskey="4">5</a></li>
<li id="botan6"><a href="リンク先のURL" title="6" accesskey="4">6</a></li>
(中略)
完成例
完成したHTMLソース
完成したCSSソース
●テンプレートへの挿入方法
後で書きますっ
画像を切り替えるには、最低でも2枚の画像が必要です。
今回紹介する方法では、通常時、マウスオーバー時、クリック時の3つの画像が必要になります。
では、3枚の画像をそれぞれアップロードすればいいのでしょうか。
しかしその方法では、上のように4つ並べると、3×4=12枚もの画像を用意してアップロードしなくてはいけません。
それは面倒なことだし、3枚の画像がそれぞれ違う場所にあると、マウスオーバー時やクリック時の処理に時間がかかってしまいます。
画像の枚数を節約し、さらに処理を速くするには・・・
画像を1枚にし、それをずらせばいいのです!
今回はCSSを使って画像をずらし、あたかも画像が切り替わってるように見せる技術の紹介です。
初めての人にはとってはとても難しいかもしれません。でも諦めずに頑張れば必ずできます。コードの書き換えが一番重要だと思います。
■準備段階1 画像を用意する
同じサイズの画像が、3つ縦に並んだ状態の画像を作ってください。
※「ボタン工房」を使えば簡単に作る事が出来ます。
「ボタン工房」 - WEBページ製作者向けのボタン作成ツール
この時、「100px×20px」というような、一つの画像の縦サイズと横サイズ把握しておいてください。
上の画像は、「100px×20px」の画像が3つ縦に並んでいて、合計のサイズは「100px×60px」です。
(pxはピクセルの意味で、サイズの単位です。 参考: ピクセル - Wikipedia / 長さ(length)の単位)
ペイントでのサイズの求め方
左メニューの「選択」をクリックし、求めたい部分をドラッグで選択してください。すると右下にその部分のサイズ(単位:px)が表示されます。
■準備段階2 画像をアップロードする
無料ホームページスペースなどに画像をアップロードします。
FC2の無料ホームページとFTP転送~サービス登録~
FC2の無料ホームページとFTP転送~FFFTPの設定~
アップロードした画像へのURLを把握しておいてください。
(例)http://andornot.nobody.jp/picture/exbotan1.png
いよいよHTMLとCSSの記述方法です。





上の5枚の画像と、以下の情報を例にして紹介します。
【一つの画像の縦サイズ(px)】20
【一つの画像の横サイズ(px)】100
【画像のURL】
http://andornot.nobody.jp/picture/exbotan1.png
http://andornot.nobody.jp/picture/exbotan2.png
http://andornot.nobody.jp/picture/exbotan3.png
http://andornot.nobody.jp/picture/exbotan4.png
http://andornot.nobody.jp/picture/exbotan5.png
<CSSのソース>
ul#navigation {
position: relative;
width: 【一つの画像の横サイズ×横に並べたい画像の数 (例)100×5=500】-px;
margin: 0;
height: 【一つの画像の縦サイズ×(例)20】px;
list-style: none;
overflow: hidden;
}
ul#navigation li a {
height: 【一つの画像の縦サイズ(例)20】px;
position: absolute;
overflow: hidden;
padding: 【一つの画像の縦サイズ(例)20】px 0 0 0;
text-indent: -100em;
text-decoration: none;
top: 0;
width: 【一つの画像の横サイズ(例)100)】px;
}
html>body ul#navigation li a{
height: 0;
}
li#botan1 a{
background: transparent url('【画像1へのURL(例)http://andornot.nobody.jp/picture/exbotan1.png】') no-repeat 0 0;
left: 【一つの画像の横サイズ×0(例)0】px;
}
li#botan2 a{
background: transparent url('【画像2へのURL(例)http://andornot.nobody.jp/picture/exbotan2.png】') no-repeat 0 0;
left: 【一つの画像の横サイズ×1(例)100】px;
}
li#botan3 a{
background: transparent url('【画像3へのURL(例)http://andornot.nobody.jp/picture/exbotan3.png】') no-repeat 0 0;
left: 【一つの画像の横サイズ×2(例)200】px;
}
li#botan4 a{
background: transparent url('【画像4へのURL(例)http://andornot.nobody.jp/picture/exbotan4.png】') no-repeat 0 0;
left: 【一つの画像の横サイズ×3(例)300】px;
}
li#botan5 a{
background: transparent url('【画像5へのURL(例)http://andornot.nobody.jp/picture/exbotan5.png】') no-repeat 0 0;
left: 【一つの画像の横サイズ×4(例)400】px;
}
li#botan1 a:hover,
li#botan2 a:hover,
li#botan3 a:hover,
li#botan4 a:hover,
li#botan5 a:hover{
background-position: 0px -【一つの画像の縦サイズ(例)20】px;
}
li#botan1 a:active,
li#botan2 a:active,
li#botan3 a:active,
li#botan4 a:active,
li#botan5 a:active{
background-position: 0px -【一つの画像の縦サイズ×2(例)40】px;
}
<HTMLのソース>
<ul id="navigation">
<li id="botan1"><a href="リンク先のURL" title="【1】" accesskey="0">【1】</a></li>
<li id="botan2"><a href="リンク先のURL" title="【2】" accesskey="1">【2】</a></li>
<li id="botan3"><a href="リンク先のURL" title="【3】" accesskey="2">【3】</a></li>
<li id="botan4"><a href="リンク先のURL" title="【4】" accesskey="3">【4】</a></li>
<li id="botan5"><a href="リンク先のURL" title="【5】" accesskey="4">【5】</a></li>
</ul>
以上です。
青色の部分はそれぞれのボタンのサイズやURLに合わせて、好きなように書き換えてください。【】も消してね。
赤色の部分は書き換えても書き換えなくてもOKです。
ただし、例えば「li#botan1 a:hover,」の部分を「li#home a:hover,」と書き換えたならば、「li#botan1 a:active, 」や「<li id="botan1">」のbotan1も同様に、homeに書き換えてください。
CSSとHTMLのソースを書き足したり消したりすれば、コンテンツの数を変えられます。
この色が付け足した部分です。
<CSSのソース>
(中略)
}
li#botan5 a{
background: transparent url('【画像5へのURL(例)http://andornot.nobody.jp/picture/exbotan5.png】') no-repeat 0 0;
left: 【一つの画像の横サイズ×4(例)400】px;
}
li#botan6 a{
background: transparent url('【画像6へのURL】') no-repeat 0 0;
left: 【一つの画像の横サイズ×5(例)500】px;
}
(中略)
li#botan4 a:hover,
li#botan5 a:hover,
li#botan6 a:hover{
background-position: 0px -【一つの画像の縦サイズ(例)20】px;
}
(中略)
li#botan4 a:active,
li#botan5 a:active,
li#botan5 a:active{
background-position: 0px -【一つの画像の縦サイズ×2(例)40】px;
}
<HTMLのソース>
(中略)
<li id="botan4"><a href="リンク先のURL" title="4" accesskey="3">4</a></li>
<li id="botan5"><a href="リンク先のURL" title="5" accesskey="4">5</a></li>
<li id="botan6"><a href="リンク先のURL" title="6" accesskey="4">6</a></li>
(中略)
完成例
完成したHTMLソース
完成したCSSソース
●テンプレートへの挿入方法
後で書きますっ
PR
SOLID DAYS 拍手ランキング
良いと思った記事には、どんどん拍手ボタンを押してください!
ランキングの反映には多少時間がかかります。
ランキングの反映には多少時間がかかります。
この記事にコメントする
SOLID DAYS 最新記事
≫ 10/06 新しい記事
≫ 04/26 SOLID DAYS β
≫ 04/05 おすすめ水性ペン 自分好みのペンが作れるハイテックCコレト
≫ 04/01 このブログの書籍化が決定しました(4月1日)
≫ 03/29 新潟県旅行記 高速道路料金は1000円で、雪と子猫をみてきました
≫ 03/20 SONYの密閉型インナーイヤーレシーバーを買いました
≫ 03/19 ひまでしにそう。カノンロック(canon rock)紹介する。
≫ 03/08 USJ×第2日本テレビ「ザ・マジカルナイト」アラジン役の声は誰
≫ 03/05 Amazonギフト券当選者抽選&発表!
≫ 03/04 テスト終わった。以上。
≫ 02/21 休止&おしらせ
≫ 02/20 PSP販売台数累計データ、世界で5000万を越す DSは・・・?
≫ 02/19 PSPCFW「オワタブラウザ」PSP用2ちゃんねる専用ブラウザ
≫ 02/16 「SofTalk」音声読み上げソフト、テキスト読み上げ、保存も可
≫ 02/14 カウンターが100000(10万)いったら何かやるか
≫ 02/13 DISSIDIA(ディシディア)FF フリオニール
≫ 02/12 今までに作ったブログトップ画像(ロゴ)一覧&作成依頼受付
≫ 02/11 MPO+実践モード第4章
PSPCFWメニュー
ブログ内検索
カスタム検索
■あっぷろーだー
SOLID DAYS NEW UPLOADER
SOLID DAYS UPLOADER
CLOSED UPLOADER
管理用 UPLOADER
■ぷろふぃーる
weak weakさんのプロフィール
weak weakのプロフ - FC2プロフ
weak weakのプロフィ
weak weakさんのプロフィール : livedoor プロフィール
weak weakのルーム(プロフィール)|Ameba Room(アメーバルーム)
■SOLID DAYS
SOLID DAYS MOBILE
SOLID DAYS AMEBA
SOLID DAYS BIGLOBE
SOLID DAYS HATENA
SOLID DAYS LIVE DOOR
SOLID DAYS FC2
SOLID DAYS AMAZON
SOLID DAYS CHAT
SOLID DAYS BBS
SOLID DAYS HQ
■pspCFWvsFW!
pspCFWvsFW!
solidcats のトップページ
■こえ部
こえ部
プロフィール
[HN]
solid cat
[性別]
男性
職業:
高校2年生
[趣味]
読書、語学、ゲーム、ランニング
[自己紹介]
入院と転校を経験した。猫が好きでよくノラ猫に餌をやっている。
Respect Links




