Hızlı düzeltme:
To resmin altında boşluğu kaldırmak şunları yapabilirsiniz:
- Set vertical-align resmin özelliğini
vertical-align: bottom;
vertical-align: top;
veyavertical-align: middle;
- Görüntünün display özelliğini
display:block;
Canlı bir demo için aşağıdaki koda bakın:
#vAlign img {
vertical-align :bottom;
}
#block img{
display:block;
}
div {border: 1px solid red;width:100px;}
img {width:100px;}
<p>No fix:</p>
<div><img src="http://i.imgur.com/RECDV24.jpg" /></div>
<p>With vertical-align:bottom; on image:</p>
<div id="vAlign"><img src="http://i.imgur.com/RECDV24.jpg" /></div>
<p>With display:block; on image:</p>
<div id="block"><img src="http://i.imgur.com/RECDV24.jpg" /></div>
Açıklama: Görüntünün altında neden bir boşluk var?
Resmin altındaki boşluk veya ekstra alan bir hata veya sorun değil, varsayılan davranıştır. Temel neden, resimlerin değiştirilmiş öğeler olmasıdır ( bkz. MDN değiştirilen öğeler ). Bu onların "görüntü gibi davranmak" ve kendi iç boyutları, en boy oranına sahip olmasını sağlar ....
Tarayıcılar display özelliklerini hesaplarlar, inline
ancak onları inline-block
elemanlara daha yakın yapan özel bir davranış sağlarlar (dikey olarak hizalayabileceğiniz gibi, bir yükseklik, üst / alt kenar boşluğu ve dolgu, dönüştürür ...).
Bu aynı zamanda şu anlama gelir:
<img>
taban çizgisi içermediğinden, resimler dikey hizalama: taban çizgisi ile satır içi biçimlendirme bağlamında kullanıldığında , görüntünün altı metin taban çizgisine yerleştirilir.
( kaynak: MDN , benim vurgu )
Tarayıcılar varsayılan olarak dikey hizalama özelliğini taban çizgisine göre hesaplarken, bu varsayılan davranıştır. Aşağıdaki resim taban çizgisinin metnin neresinde bulunduğunu göstermektedir:
( Görüntü kaynağı )
Taban çizgisi ile hizalanmış öğelerin , yukarıdaki resimde görebileceğiniz gibi taban çizgisinin (gibi ) altına inen inişler için yer tutması gerekir j, p, g ...
. Bu yapılandırmada, görüntünün altı bu örnekte görebileceğiniz gibi taban çizgisine hizalanır :
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>
Etiketin varsayılan davranışının kapsayıcısının altında bir boşluk oluşturmasının nedeni budur ve dikey hizalama özelliğini veya display özelliğini değiştirmek aşağıdaki demoda olduğu gibi kaldırır:
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>