2008.05.25
リストタグを使用した際にIEで生じる隙間を消す

リストタグを使用してメニューを作ることは良くあると思いますが、この時にIEだけに変な隙間が入る事があります。Firefox、Safari等で見るとちゃんと隙間なく詰まってるのに。。。またIE様のバグですかぁ。と憤る方もいると思います。
これはmarginやpaddingの問題でなく、IEではリスト内のインライン要素をブロック化した場合、line-heightの解釈がおかしくなるみたいです。
解決策は以下のとおり。
HTMLコード
<ul> <li><a href="#">メニュー01</a></li> <li><a href="#">メニュー02</a></li> <li><a href="#">メニュー03</a></li> </ul>
CSSコード
ul { list-style-type: none; width: 300px; } a { display: block; padding: 5px; background-color: #2255EE; color: #FFFFFF; text-decoration: none; zoom: 1; } a:hover { background-color: #1144DD; }
aタグにzoom: 1;を指定すれば隙間は消えてくれます。たったそれだけです。ただしzoomプロパティはThe W3C CSS Validation Serviceにひっかかるので、それが嫌な方はliタグにline-height:0;を、aタグにline-height:normal;を指定すれば解決します。

















No.1
noko
Re:
2008.11.07 15:39
No.2
webbibo管理人
Re:
2009.02.20 16:36
No.3
maron
助かりました。
2009.02.24 22:28
No.4
webbibo管理人
どういたしまして。
2009.02.25 22:29