オンマウスで画像とテキストを同時に変更する
A, B, C, D, Eなどの画像の上にマウスを移動させると灰色から色が変わり、下の文字色もそれに連動して変わります。
逆にテキストにマウスカーソルを合わせても、同時に画像が変わります。
HTMLソース
<div class="css_contents"> <ul> <li class="a_img"><a href="index.html"><span>A: TOPページ</span></a></li> <li class="b_img"><a href="first.html"><span>B: 初心者向け</span></a></li> <li class="c_img"><a href="rule.html"><span>C: CSSコーディングルール</span></a></li> <li class="d_img"><a href="hoverChg2.html"><span>D: 同時に画像とテキスト変更</span></a></li> <li class="e_img"><a href="index.html"><span>E: TOPページ</span></a></li> </ul> </div>
CSSソース
.css_contents ul{ position: relative; height: 180px; } .css_contents ul li{ float: left; display: block; width: 100px; height: 100px; margin: 0 2px 0 0; padding: 0; list-style-type: none; } .css_contents ul li a{ display: block; width: 100px; height: 100px; border-width: 0; } li.a_img a, li.b_img a, li.c_img a, li.d_img a, li.e_img a{ color: #333; font-weight: normal; } li.a_img a{ background: url(images/abcde.png) no-repeat 0 0; } li.b_img a{ background: url(images/abcde.png) no-repeat -101px 0; } li.c_img a{ background: url(images/abcde.png) no-repeat -203px 0; } li.d_img a{ background: url(images/abcde.png) no-repeat -305px 0; } li.e_img a{ background: url(images/abcde.png) no-repeat -407px 0; } li.a_img a:hover, li.b_img a:hover, li.c_img a:hover, li.d_img a:hover, li.e_img a:hover{ font-weight: bold; } li.a_img a:hover{ background: url(images/abcde.png) no-repeat 0 -101px; color: #c60a0a; } li.b_img a:hover{ background: url(images/abcde.png) no-repeat -101px -101px; color: #0a6bc6; } li.c_img a:hover{ background: url(images/abcde.png) no-repeat -203px -101px; color: #c6b70a; } li.d_img a:hover{ background: url(images/abcde.png) no-repeat -305px -101px; color: #2c830f; } li.e_img a:hover{ background: url(images/abcde.png) no-repeat -407px -101px; color: #b20ac6; } li a span{ position: absolute; top: 110px; left: 0; display: block; } li.a_img a span{ margin: 5px 0 0 0; } li.b_img a span{ margin: 5px 0 0 200px; } li.c_img a span{ margin: 5px 0 0 400px; } li.d_img a span{ margin: 25px 0 0 0; } li.e_img a span{ margin: 25px 0 0 200px; }
CSSの解説
まず、floatを使って100pxの正方形の画像を左寄せで並べています。
余白を取りたいので、marginで左に2pxを指定しています。
.css_contents ul li{ float: left; display: block; width: 100px; height: 100px; margin: 0 2px 0 0; }
通常だと画像とテキストが重なってしまうので、テキストは位置を指定して並べています。
li a span{ position: absolute; top: 110px; left: 0; display: block; } li.a_img a span{ margin: 5px 0 0 0; } li.b_img a span{ margin: 5px 0 0 200px; }
セレクタのhoverで背景画像の位置をずらして表示画像を変えています。
li.a_img a{ background: url(images/abcde.png) no-repeat 0 0; } li.a_img a:hover{ background: url(images/abcde.png) no-repeat 0 -101px; color: #c60a0a; }
同時にテキストの文字色を同じ色に変え、文字の太さをboldに変更しています。
li.e_img a:hover{ font-weight: bold; }