如何清除img圖片下面有一片空白


最近在做項目突然發現用了img后有個空白區,如下圖:

真的很影響美觀,那么是什么原因造成的呢?

右鍵查看元素查看上下文的margin和padding也沒有找到這個空白的來源.

只好上網看看別人是怎么說的:

---------------------------------------------------------------------------這里是分割線--------------------------------------------------------------------------------------------

作者:尤雨溪
鏈接:https://www.zhihu.com/question/21558138/answer/18615056
來源:知乎

首先要弄明白CSS對於 display: inline 元素的 vertical-align 各個值的含義。vertical-align 的默認值是 baseline,這是一個西文排版才有的概念:

可以看到,出現在baseline下面的是 p ,q , g 等這些字母下面的那個尾巴。

對比一下 vertical-align 的另外兩個常見值,top 和 bottom:


可以看到,baseline 和 bottom 之間有一定的距離。實際上,inline 的圖片下面那一道空白正是 baseline 和 bottom 之間的這段距離。即使只有圖片沒有文字,只要是 inline 的圖片這段空白都會存在。

那么去掉這段空白的方法有以下幾種:

1. 最直接的辦法是將圖片的 vertical-align 設置為其他值。如果在同一行里有文字混排的話,那應該是用 bottom 或是 middle 比較好。

2.top 和 bottom 之間的值即為 line-height。假如把 line-height 設置為0,那么 baseline 與 bottom 之間的距離也變為0,那道空白也就不見了。

3.如果沒有設置 line-height,line-height 的默認值是基於 font-size 的,視渲染引擎有所不同,但一般是乘以一個系數(比如1.2)。

因此,在沒有設置 line-height 的情況下把 font-size 設為0也可以達到同樣的效果。當然,這樣做的后果就是不能圖文混排了。

圖片底部是基於文字基線的,而容器 div 的底部是低於基線的。所以這個空白實際上是文字基線以下的部分。

4.無論 img 設置 display:block 還是 vertical-align:top/bottom/middle 都將使 img 超出文字基線,致使空白消失。
 
---------------------------------------------------------------------------------------------------------這里是分割線----------------------------------------------------------------------------------------------------------------------------------------

這里只有圖片,所以就采取了font-size:0的方法清除了底部的空白:
 
沒有了這段空白區感覺看着舒服多了(*^__^*) 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM