2009.01.29
今更な感じですが、IE6でのレイアウト崩れについてです。
<div>や<img>などの要素を縦に並べたとき、余計な隙間ができてしまうことがあります。場合によって原因は変わってくると思いますが、起こりやすそうなものを書いてみます。
横幅にぴったりな<img>の下の隙間
<img>タグで親の横幅にぴったりな画像を入れている場合、直下の要素との間が空いてしまうことがあります。
これは、<img>と要素の間の改行が原因であることが多いです。
<div>
<img src="xxxxx">
<div>
コンテンツ
</div>
</div>
コードを見やすくするために改行したいものですが、改行は半角スペースに変換されてしまうため、横幅に納まりきらず縦に伸びてしまいます。
こういう場合は<img>タグ後の改行をとってしまうか、<img>タグの後ろに<br />タグを入れれば解決できます。
<div>
<img src="xxxxx"><br />
<div>
コンテンツ
</div>
</div>
こんな感じです。
縦細の<div>の下にできる隙間
縦幅の狭い<div>などを使っている場合、下に余計な余白がでることがあります。
これは、指定した height よりも文字サイズ+行間が大きいことが原因です。
厄介なのは、要素内にテキストを入れてなくても起こること・・
パッと見て、文字サイズが問題だと気付きにくいです。
スタイルで font-size や line-height を指定して、<div>の height よりも小さくしてあげれば直ると思います。
09/6/24
後に別の記事でも書いていますが、スタイルに「overflow:hidden; 」を設定することでも解決できるようです。
文字サイズでも間違いではないですが、あまり小さくするとスパム扱いされてしまう場合があるようです・・。
<div>や<img>などの要素を縦に並べたとき、余計な隙間ができてしまうことがあります。場合によって原因は変わってくると思いますが、起こりやすそうなものを書いてみます。
横幅にぴったりな<img>の下の隙間
<img>タグで親の横幅にぴったりな画像を入れている場合、直下の要素との間が空いてしまうことがあります。
これは、<img>と要素の間の改行が原因であることが多いです。
<div>
<img src="xxxxx">
<div>
コンテンツ
</div>
</div>
コードを見やすくするために改行したいものですが、改行は半角スペースに変換されてしまうため、横幅に納まりきらず縦に伸びてしまいます。
こういう場合は<img>タグ後の改行をとってしまうか、<img>タグの後ろに<br />タグを入れれば解決できます。
<div>
<img src="xxxxx"><br />
<div>
コンテンツ
</div>
</div>
こんな感じです。
縦細の<div>の下にできる隙間
縦幅の狭い<div>などを使っている場合、下に余計な余白がでることがあります。
これは、指定した height よりも文字サイズ+行間が大きいことが原因です。
厄介なのは、要素内にテキストを入れてなくても起こること・・
パッと見て、文字サイズが問題だと気付きにくいです。
09/6/24
後に別の記事でも書いていますが、スタイルに「overflow:hidden; 」を設定することでも解決できるようです。
文字サイズでも間違いではないですが、あまり小さくするとスパム扱いされてしまう場合があるようです・・。
昨日からこの問題でずっと悩んでました。
文字を入れてなくても起こるなんて、そんな罠があるとは……
本当に助かりました!ありがとうございます!
IE6は独特な仕様で悩まされることが多いですよね、本当に…
お役に立てたようでなによりです~。
私もとても助かりました。
無事解決できました。ありがとうございます
IE6は切り捨てたいところですが、
まだ使ってる人居るんですよね~^^;
こちらのブログのデザイン洗練されていますね。
私ももっと精進しなきゃと刺激になりました。
ほんとだ・・・
なんでいつもIEだけ・・・(-_-;)
と、すごい悩んでました。
助かりました。
ありがとうございました