真正意義上的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>
這種表現是符合規範的應該有的表現,不過,這類間距有時會對我們佈局,或是兼容性處理產生影響,需要去掉它,該怎麼辦呢?
下面介紹幾種簡單常用的方法:
使用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; }