私は内部に(未知のサイズの)イメージを持つ固定サイズのコンテナを作りたいと思っています。次に、イメージをコンテナにフィットさせて、イメージを中央に配置したい(水平と垂直の両方)。私が思いついたのは:DOCTYPEはCSSに影響しますか?
<!DOCTYPE html>
<html>
<body>
<div style="width: 500px; height: 375px; display: table-cell;
vertical-align: middle">
<img src="./Slideshow_files/Charles Bridge In Prague.jpg"
style="max-width: 500px; max-height: 375px">
</div>
</body>
</html>
いくつかの画像ではうまくいきます。しかし、this one(正確にはサイズ500x375)は、外側のdiv
の高さを底部の375px(Chromeでは5px、Operaでは4px)よりも数ピクセル高くします。何故ですか??
EDIT:hereのデモを追加しました(また、display: table-row
とdisplay: table
の要素を持つ別のデモはhere)。どちらの場合も、赤い背景が表示されません。 Chromeで& Operaです。
まず最初は、私は質問のタイトルを見たときのけれどもだった:IE。 IEが私のサイトを適切に表示していなかったので、私は一晩でとても怒っていました。後で私は 'DOCTYPE'を逃したのでそれがすべてであることを発見しました。 – Shaz
さて、私はIEにも行きませんでしたが、私はChromeとFFの両方でこの問題を抱えています。 DOCTYPEがCSSの解釈に影響を与えるのは普通ですか? (btw。私はあなたの不満を完全に理解することができます、それはまた、それがDOCTYPEに起因することを理解するためにしばらく時間がかかりました)。 – akoprowski
はい、正常です。 doctypeを変更すると、ブラウザが異なるレンダリングモードに強制され、ボックスモデルの解釈方法が調整されます。新しいサイトで作業している場合は、HTML5のdoctype '<!DOCTYPE html> 'の使用を強くお勧めします。 –