CSS/DHTMLバグ辞典スレッド 第4版

このエントリーをはてなブックマークに追加
274Name_Not_Found
http://pc5.2ch.net/test/read.cgi/hp/1087263288/698-716
【NN7.1】
テーブル内に画像を敷き詰められない(N6.2)
 http://cssbug.at.infoseek.co.jp/detail/mozilla/b033.html
これはテーブル内に限らないので、改訂してはどうですか。

DOCTYPE宣言によって、vertical-alignの初期値が異なる。(仕様通りの動作)
.a p, .a img {
border: 1px solid red;
margin: 0;
}
<div class="a">
<img src="star.gif" width="200" height="30">
<p>↑隙間が空く</p>
</div>
DOCTYPE宣言が下記の通りStrictだと、隙間が空く。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
しかしDOCTYPE宣言がTransitionalだと、Almost Standardモードの
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
でも、
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
でも、公開識別子の有無に拘らず、隙間は空かない。
したがって、標準モードか互換(Quirks)モードかの所謂DOCTYPEスイッチとは別の規準がある。
 cf. http://www.remus.dti.ne.jp/~a-satomi/bunsyorou/Doctype-Switch_situation.html#doctype-switch-situation
 cf. http://www.mozilla.gr.jp/standards/webtips0014.html
.a img {vertical-align:bottom;}を追加指定すると、Strictでも隙間は空かなくなる.
つまり、Full Standardモードではvertical-alignの初期値がbaselineである。
 cf. http://www.mozilla.gr.jp/standards/webtips0018.html