<div class="wrap">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li><br>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
css
.wrap {
display:table;
background: green;
padding: 10px 20px;
}
ul {
display:table;
background: yellow;
margin: 0;
padding: 0;
font-size: 0;
}
li {
margin:0 4px 4px 0;
display: inline-block;
width: 70px;
height: 50px;
background: purple;
list-style: none;
}
li:nth-child(7){
margin-right: 0px;
}
************************************************ ************************
其他
<div class="wrap">
<ul>
<li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li>
</ul>
</div>
还有
<div class="wrap">
<ul>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
</ul>
</div>
css
.wrap {
background: green;
width: 520px;
padding: 10px 20px;
}
ul {
background: yellow;
margin: 0;
padding: 0;
border:0;
}
li {
position:relative;
display: inline-block;
width: 70px;
height: 50px;
background: purple;
list-style: none;
margin-right: 5px;
}
li:nth-child(7){
margin-right: 0px;
}
li:nth-child(14){
margin-right: 0px;
}
这不是“错误”(我不认为)。这只是在一条线上设置元素的方式。您希望键入的单词之间的空格是空格吗?这些块之间的空格就像单词之间的空格一样。这并不是说规范不能更新为内联块元素之间的空格应该是什么,但我相当肯定这是一个不可能发生的巨大蠕虫。
这里有一些方法可以消除差距并让内联块元素直接相邻。
删除空格
获得空格的原因是,元素之间有空格(为了清楚起见,换行符和几个制表符算作空格)。最小化的 HTML 将解决这个问题,或者这些技巧之一:
<ul>
<li>
one</li><li>
two</li><li>
three</li>
</ul>
或
<ul>
<li>one</li
><li>two</li
><li>three</li>
</ul
或者用 cmets...
<ul>
<li>one</li><!--
--><li>two</li><!--
--><li>three</li>
</ul>
它们都很时髦,但它确实有用。
负边距
您可以用负 4px 的边距将元素滑回原位(可能需要根据父级的字体大小进行调整)。显然这在旧版 IE(6 和 7)中是有问题的,但如果您不关心这些浏览器,至少您可以保持代码格式干净。
display: inline-block;
margin-right: -4px;
跳过结束标签
HTML5 无论如何都不在乎。虽然你不得不承认,但感觉很奇怪。
<ul>
<li>one
<li>two
<li>three
</ul>