オンマウスで画像とテキストを同時に変更する
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;
}