イメージにラインハイトの垂直センタリングなし
影響を受けるIEのバージョン
このバグはIE7、IE6に影響します。
現れ
line-heightメソッドを使用すると、イメージが垂直方向にセンタリングされません。
チュートリアル開発時間
2009.7.18 11:39:56
説明
このバグは私の脳細胞の多くを殺します。私は以前、見栄えをよくするために、同じサイズのボックスにサイズの違うイメージをたくさん入れた「商品ページ」を作っていました。このバグの回避策を見つけた後も、私はこのバグが嫌いです。とにかく、例を見てください。
例
HTMLコード
<div><img src="hl_logo.png" alt="" width="95" height="115"></div>
<!-- NOTE: no white-space in the <div> also triggers bug in IE7 -->
CSSコード
div {
width: 150px;
height: 155px;
line-height: 155px;
text-align: center;
}
img {
vertical-align: middle;
}
IE8以下のIEでは、テントウムシのイメージが縦中央に表示されません。
処方
上記バグの回避策は以下の通りです。
溶液 (クリーンラベル法)
メソッドの時間
2009.7.18 11:52:58
修理可能バージョン
このバグの影響を受けるすべてのバージョン
説明
この回避策は「クリーンなマークアップの回避策」となっているので、もしサポートしているIEの最低バージョンが7であれば、divにスペースを追加するだけでよいことに注意してください。(つまり、<span>要素は IE のバージョン7以下でのみ必要です)
例
HTMLコード
<div>
<img src="hl_logo.png" alt="" width="95" height="115">
<span></span>
</div>
<!-- NOTE: <span> is not needed for IE7; whitespace is enough -->
CSSコード
div {
width: 150px;
height: 155px;
line-height: 155px;
border: 1px solid #000;
background: #f00;
text-align: center;
}
img {
vertical-align: middle;
}
span {
display: inline-block;
}
また、displayプロパティをinline-blockに設定し、キーとなるスパンに"layout"を持たせています。結果:すべてうまくいきました。




