オンマウスで画像とテキストを同時に変更する

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;
}