2009年11月4日水曜日

今更ながら2

(ホントの備忘録)

1.IEでは、画像の下側に隙間ができてしまう。

画像を上下に密着させて配置したいときに困る。
これを回避するには、imgタグに対して、
vertical-align: middle;
のように設定しておくと良い。(middle のところはtopやbottomでもいいらしい)

2.IEでは、縦サイズの小さい画像の上下に空白ができる。

縦方向が可変なボックスに、画像を背景に使って枠を付けるような場合、一番上と一番下部分を別divにして上蓋・下蓋用の背景画像(と余白)を指定するか、上蓋・下蓋用の画像をimgで直接置くことになるが、後者の方がソースとして分かりやすくなると思って、縦が数ピクセルの横長の画像を「蓋」として置いてみた。
すると、「蓋」の上下に隙間ができてしまう。FireFoxでは隙間は出ない。
imgタグには、
margin: 0px;
padding: 0px;
が適用されているはずなので謎だった。

結論から言うと、IEの場合、
画像の縦方向の表示サイズは、画像を置く場所に適用される「行の高さ」より狭くできないらしい。
line-height を変えると、問題の「隙間」も変わるが、100%より小さくはならない。
そこを小さくするには、適用されているフォントサイズを変える必要がある。

回避策は、画像を含むdivタグに対して、
font-size: 1px;
を指定する。
これは、1.の問題でも使えるらしい。