1. 程式人生 > >inline-block元素的空隙與解決方法

inline-block元素的空隙與解決方法

rom move 寬高 上下文 無效 cin idt 遮擋 inpu

多次遇到了使用inline-block後留下間隙的問題,所以記錄一下,以提醒自己以後留意這點。


現象描述:

使用display:inlie-block後和一些行內元素都有此現象如:<a> <img><input>等標簽元素

<div class="space">
    <p></p>
    <p></p>
    <p></p>
</div>
.space p{
    display: inline-block;
    width: 50px;
    height
: 50px; background-color: green; margin:0;//無效 }

技術分享


那沒我們該如何解決呢?方法是很多的。可以參考大神的解決方法:http://www.zhangxinxu.com/wordpress/2012/04/inline-block-space-remove-%E5%8E%BB%E9%99%A4%E9%97%B4%E8%B7%9D/ 。以下方法是我對此博客的提煉。

方法一

  間隙產生的原因是HTML的換行空格,所以可以直接取消換行即可。但是這樣是降低代碼的可讀性,另外可以用註釋來占位

方法二

  設置margin為負值,margin負值的大小與上下文的字體和文字大小相關。貌似計算值有點麻煩,且未知外部環境,故不適合大規模使用。

方法三

  好奇怪的方法,不過真的可以。

<div class="space">
    <p>
    <p>
    <p></p>
</div>

方法四

  在父元素設置font-size:0, 新的Chrome也可以完美解決,容易造成字體大小混亂,謹慎使用。<img>元素下可以使用

方法五

  使用letter-spacing,字符間距,負值設置過大文字重疊或被遮擋。

方法六

  使用word-spacing, 單詞間距,Chrome下負值設置過大會使寬高縮小。

更多方法可以查看:http://www.zhangxinxu.com/wordpress/2012/04/inline-block-space-remove-%E5%8E%BB%E9%99%A4%E9%97%B4%E8%B7%9D/。其中博主的方法八我沒看懂,故不作記錄。

inline-block元素的空隙與解決方法