Table of Contents
问题描述
属性为display: inline-block的元素之间,换行显示或用空格分隔的情况下会产生间距。
<ul> <li>一</li> <li>二</li> <li>三</li> <li>四</li></ul>ul li { display: inline-block;}这种间距会影响到我们布局,如何去除这种间距?
经典解决方案
使用html解决,将inline-block元素写在一行里,或让标签首尾不换行
<!-- 将inline-block元素写在一行 --><ul> <li>一</li> <li>二</li> <li>三</li> <li>四</li></ul><!-- 标签首尾不换行 --><ul> <li>一</li> <li>二</li> <li>三</li> <li>四</li></ul>缺点:影响代码美观与格式化
使用css解决,设置父元素font-size为0,或设置子元素margin或letter-spacing或word-spacing属性为负值
/* 设置font-size */ul { font-size: 0;}ul li { font-size: 14px;}/* 设置margin或letter-spacing或word-spacing */ul li { margin: -1;}ul li { letter-spacing: -1;}ul li { word-spacing: -1;}缺点:跨浏览器兼容不好
终级解决方案
在父元素上使用display: flex
ul { display: flex;}ul li { display: inline-block;}