我想要六个percent -widthdiv的间距均匀地沿着100%的宽度div,填充整个100%的宽度,但他们之间有一个小的空白。
下面是一个显示问题的JSFiddle:
http://jsfiddle.net/uQcGS/1/或者这里的代码:
<div class="container">
<div class="inner red"> </div>
<div class="inner orange"> </div>
<div class="inner yellow"> </div>
<div class="inner green"> </div>
<div class="inner blue"> </div>
<div class="inner purple"> </div>
</div>
div {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.container {
width: 100%;
}
.inner {
width: 16%;
display: inline-block;
margin: 1px;
}
当前边距导致它们跨两行。
我发现了一些类似问题的hack,但我不确定如何将它们应用到我的具体问题。
inline formatting context
中的元素将在HTML中产生由空格或回车引起的小水平"margin"。通过删除空格,您将删除页边距。还有其他一些技术也可以克服这种行为,其中之一就是使用float
来代替
您可以将所有<div>
s放在一行中,中间不使用空白字符。
<div class="container">
<div class="inner red"> </div><div class="inner orange"> </div><div class="inner yellow"> </div><div class="inner green"> </div><div class="inner blue"> </div><div class="inner purple"> </div>
<!-- Plus arbitrarily many more boxes... -->
</div>
这些空白字符在您的<div>
元素之间造成额外的空间。
你的页边距,加上元素的宽度和它们之间的空白之和超过100%,这是导致中断。浮动它们以移除空间,并调整计算,使总数不大于100%。
修改你的CSS为:
.inner {
width: 14%;
display: inline-block;
margin: 1%;
float:left;
}
<<p> jsFiddle例子/strong> 应该可以:
.inner {
width: 15%;
display: inline-block;
margin-right: 2%;
float:left;
}
.inner:last-child {
margin-right: 0;
}
http://jsfiddle.net/pulleasy/uQcGS/7/我已经更新了你的代码,请检查它JSFIDDLE
你所需要做的只是三个步骤:
- 删除
display: inline-block;
并使用float:left
(使用float更好,你只需要理解它) - 减小一点宽度(我建议16%),并在边距中使用百分比(我建议1%)
-
总是在使用
float
之后不要忘记添加样式为clear:both
的div