次のコードでの高さがの高さdivよりも大きいのはなぜimgですか?画像の下にギャップがありますが、パディング/マージンではないようです。
画像の下のギャップまたは余分なスペースは何ですか?
#wrapper {
border: 1px solid red;
width:200px;
}
img {
width:200px;
}
<div id="wrapper">
<img src="http://i.imgur.com/RECDV24.jpg" />
</div>

次のコードでの高さがの高さdivよりも大きいのはなぜimgですか?画像の下にギャップがありますが、パディング/マージンではないようです。
画像の下のギャップまたは余分なスペースは何ですか?
#wrapper {
border: 1px solid red;
width:200px;
}
img {
width:200px;
}
<div id="wrapper">
<img src="http://i.imgur.com/RECDV24.jpg" />
</div>

回答:
デフォルトでは、画像は文字のようにインラインでレンダリングされるため、a、b、c、dと同じ線上に配置されます。
その行の下には、g、j、p、qなどの文字で見つかるディセンダー用のスペースがあります。
あなたはできる:
vertical-align別の場所に配置する画像の(例えばmiddle)またはdisplayインラインではないように変更してください。div {
border: solid black 1px;
margin-bottom: 10px;
}
#align-middle img {
vertical-align: middle;
}
#align-base img {
vertical-align: bottom;
}
#display img {
display: block;
}
<div id="default">
<h1>Default</h1>
The quick brown fox jumps over the lazy dog <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/f2/VangoghStarry-night2.jpg/300px-VangoghStarry-night2.jpg" alt="">
</div>
<div id="align-middle">
<h1>vertical-align: middle</h1>
The quick brown fox jumps over the lazy dog <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/f2/VangoghStarry-night2.jpg/300px-VangoghStarry-night2.jpg" alt=""> </div>
<div id="align-base">
<h1>vertical-align: bottom</h1>
The quick brown fox jumps over the lazy dog <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/f2/VangoghStarry-night2.jpg/300px-VangoghStarry-night2.jpg" alt=""> </div>
<div id="display">
<h1>display: block</h1>
The quick brown fox jumps over the lazy dog <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/f2/VangoghStarry-night2.jpg/300px-VangoghStarry-night2.jpg" alt="">
</div>
含まれている画像はパブリックドメインであり、Wikimedia Commonsから提供されています
line-heightます。line-height目的の寸法に設定すると、不要な空白も解消されます。
画像の下の隙間をなくすには、次の方法があります。
vertical-align: bottom; vertical-align: top;またはに設定しますvertical-align: middle;display:block;ライブデモについては、次のコードを参照してください。
画像の下の隙間や余分なスペースはバグや問題ではなく、デフォルトの動作です。根本的な原因は、画像が置換された要素であることです(MDN置換された要素を参照)。これにより、「イメージのように動作」し、独自の固有の寸法、アスペクト比を
持つことinlineができます。ブラウザは表示プロパティを計算しますが、ブラウザに近づける特別な動作を提供しますinline-block要素にます(垂直方向に整列できるため、それらの高さ、上部/下部のマージンとパディング、変換...)。
これは、次のことも意味します。
<img>にはベースラインがないため、画像がvertical-align:ベースラインのインラインフォーマットコンテキストで使用されると、画像の下部がテキストベースラインに配置されます。
(出典:MDN、強調鉱山)
ブラウザはデフォルトでvertical-alignプロパティをベースラインに計算するため、これがデフォルトの動作です。次の画像は、ベースラインがテキストのどこにあるかを示しています。
(画像ソース)
上の画像でわかるように、ベースラインに揃えられた要素は、ベースラインの下に伸びるディセンダー(のようにj, p, g ...)のためのスペースを保つ必要があります。この構成では、次の例でわかるように、画像の下部がベースラインに揃っています。
div{border:1px solid red;font-size:30px;}
img{width:100px;height:auto;}
<div>
<img src="http://i.imgur.com/RECDV24.jpg" />jpq are letters with descender
</div>
これが<img>、次のデモのように、タグのデフォルトの動作がコンテナの下部にギャップを作成し、vertical-alignプロパティまたはdisplayプロパティを変更するとタグが削除される理由です。
div {width: 100px;border: 1px solid red;}
img {width: 100px;height: auto;}
.block img{
display:block;
}
.bottom img{
vertical-align:bottom;
}
<p>Default:</p>
<div>
<img src="http://i.imgur.com/RECDV24.jpg" />
</div>
<p>With display:block;</p>
<div class="block">
<img src="http://i.imgur.com/RECDV24.jpg" />
</div>
<p>With vertical-align:bottom;</p>
<div class="bottom">
<img src="http://i.imgur.com/RECDV24.jpg" />
</div>
line-height:0;が、垂直方向の配置や表示のプロパティを変更する場合と比較して、これを適切な回避策とは考えていません
font-size:0。ユーザー設定でフォントサイズを最小サイズに設定しています。
middle text-top sub superは写真の位置が正しくないと思います。
あなたはこの問題のためにいくつかの方法を使うことができます
使用する line-height
#wrapper { line-height: 0px; }使用する display: flex
#wrapper { display: flex; }
#wrapper { display: inline-flex; }使用してdisplay: block、table、flexおよびinherit
#wrapper img { display: block; }
#wrapper img { display: table; }
#wrapper img { display: flex; }
#wrapper img { display: inherit; }line-heightハックはお勧めしません、または少なくともそれをすべての中で最悪の「解決策」にする理由を明確にしないでください。誰かが画像の横にテキストを配置した瞬間(特にBRタグ付きの事前フォーマット済みの複数行)、それらは当初よりも悪い状況に置かれるでしょう。
display:blockを使用するとうまく機能することがわかりました。画像上とvertical-align:top; テキスト上。
.imagebox {
width:200px;
float:left;
height:88px;
position:relative;
background-color: #999;
}
.container {
width:600px;
height:176px;
background-color: #666;
position:relative;
overflow:hidden;
}
.text {
color: #000;
font-size: 11px;
font-family: robotomeduim, sans-serif;
vertical-align:top;
}
.imagebox img{ display:block;}
<div class="container">
<div class="imagebox">
<img src="http://machdiamonds.com/n69xvs.jpg" /> <span class="text">Image title</span>
</div>
<div class="imagebox">
<img src="http://machdiamonds.com/n69xvs.jpg" /> <span class="text">Image title</span>
</div>
<div class="imagebox">
<img src="http://machdiamonds.com/n69xvs.jpg" /> <span class="text">Image title</span>
</div>
<div class="imagebox">
<img src="http://machdiamonds.com/n69xvs.jpg" /> <span class="text">Image title</span>
</div>
<div class="imagebox">
<img src="http://machdiamonds.com/n69xvs.jpg" /> <span class="text">Image title</span>
</div>
<div class="imagebox">
<img src="http://machdiamonds.com/n69xvs.jpg" /> <span class="text">Image title</span>
</div>
</div>
またはJS FIDDLEのコードを編集できます