display: inline-block 屬性很好的避免了元素的浮動問題,但是會有點小問題,就是 inline-block 元素間的回車會被顯示為一個空格。然而,我們寫代碼時,都是用回車來格式化的。。。
最簡單的方法就是把 inline-block 元素之間的回車刪除,就是代碼顯示有點不美觀,影響閱讀。
方法總結
以下方法不保證瀏覽器兼容性問題,僅在 Chrome 瀏覽器測試通過
HTML Code:
<h5>未處理空格</h5>
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
<h5>通過格式化代碼來去除空格</h5>
<ul>
<li>One</li><li>
Two</li><li>
Three</li>
</ul>
<h5>用空白注釋代替回車</h5>
<ul>
<li>One</li><!--
--><li>Two</li><!--
--><li>Three</li>
</ul>
<h5>通過忽略</li> 去除空格</h5>
<ul>
<li>One
<li>Two
<li>Three
</ul>
<h5>設置 margin-right: -4px 去除空格</h5>
<ul class="margin-fix">
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
<h5>設置 font-size: 0 去除空格</h5>
<ul class="font-size-fix">
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
<h5>設置 flex-box 去除空格</h5>
<ul class="flex-box">
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
CSS Code:
body {
font-family: sans-serif;
font-size: 16px;
}
ul {
list-style: none;
}
li {
display: inline-block;
background-color: #000;
color: #fff;
padding: 5px;
}
ul.margin-fix li {
margin-right: -4px;
}
ul.font-size-fix {
font-size: 0;
}
ul.font-size-fix li {
font-size: 16px;
}
ul.flex-box {
display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */
display: -moz-box; /* OLD - Firefox 19- (buggy but mostly works) */
display: -ms-flexbox; /* TWEENER - IE 10 */
display: -webkit-flex; /* NEW - Chrome */
display: flex; /* NEW, Spec - Opera 12.1, Firefox 20+ */
}