2016-04-12 2 views
0

私はこれを作ることをいかに困難にしても、divは40pxの高さで、それはheightが大きくなっています。div要素が自動的に指定よりも大きくなっていますか?

div { 
 
    /* To prove the div does get larger */ 
 
    display: table; 
 
    background-color: red; 
 
    /* Not even explicitly setting height to 40px helps: */ 
 
    height: 40px; 
 
    max-height: 40px; 
 
    /* Ofc, problem occurs also without these two lines. */ 
 
}
<div> 
 
    <img src="http://placehold.it/350x40"> 
 
</div> 
 
<img src="http://placehold.it/350x40">

JsFiddle

私が意図することを願っていますが明確である:

はここでサンプルHTMLでdivはそれだけ内の画像と同じ大きさでなければなりません。

内部の画像は40pxなので、div40pxと高くなると思います。

ただし、そうではありません。それは大きくなり続けます。私は目立つような問題を示すために、赤にbackground-colorを設定しました:

enter image description here

うん、上記は、Firefoxが私を示したまさにです。私は同じ結果を得てIE 11も試しました。

私はFirefoxのインスペクタを見てみました。何らかの理由でFirefoxがdivの高さを44.5pxに設定しているようです。

これはなぜ発生するのですか?どのようにこの動作を停止するには?

答えて

1

imgは、インライン要素は、そのためのスペースを作成しているため、あなたはブロックレベルとして表示するimgを設定する必要があります。また、div

div { 
 
    display: table; 
 
    background: red 
 
} 
 
img { 
 
    display: block 
 
}
<div> 
 
    <img src="http://placehold.it/350x40"> 
 
</div> 
 
<img src="http://placehold.it/350x40">

に何かを必要としません更新コメントから、

問題は、私はちょうど の隣に、このdivに2つの画像が必要であるということです。

inline-blockを代わりに使用してください。

div { 
 
    display: table; 
 
    background: red; 
 
    font-size: 0 /* updated from comments */ 
 
} 
 
img { 
 
    display: inline-block /* updated from comments */ 
 
}
<div> 
 
    <img src="http://placehold.it/175x40"> 
 
    <img src="http://placehold.it/175x40"> 
 
</div> 
 
<img src="http://placehold.it/350x40">

+0

う設定 '行の高さ:0;' divの中で合理的なアプローチでありますか? – gaazkam

+0

'div'の中に何らかのテキストがある場合は' no'を返します。だからこそ、私はあなたにこのオプションを与えました。なぜなら、それは「タッチ」する必要がある要素に「触れる」ためです。 – dippas

+0

問題は、このdivに2つの画像が必要です。サンプルの1つのイメージは、それが(単純な)単純化されたサンプルだったからです。ディスプレイを 'block 'に設定すると、これらの2つのイメージは適切ではない行になります... – gaazkam

関連する問題