去除inline-block元素間間距的幾種辦法

真正意義上的inline-block水平呈現的元素間,換行顯示或空格分隔的情況下會有間距,很簡單的個例子:

<input /> <input type="submit" />

表åæ§ä»¶ä¹é´çé´è·ä¾å­

我們使用CSS更改非inline-block水平元素爲inline-block水平,也會有該問題:

.space a {
    display: inline-block;
    padding: .5em 1em;
    background-color: #cad5eb;
}
<div class="space">
    <a href="##">惆悵</a>
    <a href="##">淡定</a>
    <a href="##">熱血</a>
</div>

inline-blockæ°´å¹³åç´ é´çé´è·ç¤ºæ å¼ é«æ­-é«ç©ºé´-é«çæ´»

這種表現是符合規範的應該有的表現,不過,這類間距有時會對我們佈局,或是兼容性處理產生影響,需要去掉它,該怎麼辦呢?

下面介紹幾種簡單常用的方法:

使用font-size:0

這個方法,基本上可以解決大部分瀏覽器下inline-block元素之間的間距(IE7等瀏覽器有時候會有1像素的間距)。不過有個瀏覽器,就是Chrome, 其默認有最小字體大小限制,因爲,考慮到兼容性,我們還需要添加:
類似下面的代碼:

.space {
    font-size: 0;
    -webkit-text-size-adjust:none;
}

使用letter-spacing

.space {
    letter-spacing: -3px;
}
.space a {
    letter-spacing: 0;
}

使用word-spacing

li {
    display:inline-block;
    background: orange;
    padding:10px;
    word-spacing:0;
    }
ul {
    width:100%;
    display:table;  /* 調教webkit*/
    word-spacing:-1em;
}

更多方法可參考https://www.zhangxinxu.com/wordpress/2012/04/inline-block-space-remove-%E5%8E%BB%E9%99%A4%E9%97%B4%E8%B7%9D/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章