SEOの観点でメニューの中でテキストは使いたいけど、メニュー自体は画像にして見栄えを良くしたい。そんな要望にどう答えるのがいいのか、考えてみる。画像置換とか言われる話。手法としては、CSSで「text-indent: -9999px;」として、とりあえず文字を左の方に押し込んで見えなくする。
<style type="text/css"><!--
ul#menu-sample {
width: 600px;
height: 25px;
margin: 0px;
padding: 0px;
}
ul#menu-sample li {
list-style-type:none;
text-align: center;
float: left;
}
ul#menu-sample li a {
display:block;
float: left;
background-repeat: no-repeat;
background-position: left top;
width: 200px;
height: 25px;
margin: 0px;
padding: 0px;
color: #000000;
text-decoration: none;
text-indent: -9999px;
}
ul#menu-sample li#item01 a{
background-image: url(http://livedoor.blogimg.jp/tani_masaru/imgs/f/0/f0a23068.png);
}
ul#menu-sample li#item02 a{
background-image: url(http://livedoor.blogimg.jp/tani_masaru/imgs/c/3/c30384c2.png);
}
ul#menu-sample li#item03 a{
background-image: url(http://livedoor.blogimg.jp/tani_masaru/imgs/1/6/1693c65b.png);
}
ul#menu-sample li a:hover {
color: #FFFFFF;
background-position: left bottom;
}
--></style>
<ul id="menu-sample">
<li id="item01"><a href="#"><span>メニュー1</span></a></li>
<li id="item02"><a href="#"><span>メニュー2</span></a></li>
<li id="item03"><a href="#"><span>メニュー3</span></a></li>
</ul>
画像置換の方法としては、かなりメジャーな「text-indent:-9999px」。でも、これってどうなの?というのはある。つまり表示はされているが意図的に見えないようにするという点では「背景色と同じ文字色」にしたり、「フォントサイズを1px」にするのと同じことである。
- CSSとリストタグを使ってメニューを作る(準備編)
- CSSとリストタグを使ってメニューを作る(基礎編)
- CSSとリストタグを使ってメニューを作る(カスタマイズ編)
- CSSとリストタグを使ってメニューを作る(カスタマイズ編2)
- CSSとリストタグを使ってメニューを作る(カスタマイズ編3)


