我希望六个百分比宽度的div沿100%宽度div均匀分布,填满整个100%宽度,但它们之间的间距很小。
这是一个显示问题的JSFiddle:
或代码在这里:
<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;
}
目前,保证金导致他们突破两条线。
我找到了some hacks for similar problems,但我不确定如何将它们应用到我的具体问题中。
答案 0 :(得分:5)
inline formatting context
中的元素会导致HTML中的空格或回车引起的小水平“边距”。通过删除空格,您将删除边距。还有一些其他techniques可以克服此行为,其中一个只是使用float
而不是
答案 1 :(得分:1)
您可以将所有<div>
放在一行中,中间没有任何空白字符。
<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>
元素之间的空间和空间。
答案 2 :(得分:1)
您的保证金,加上元素的宽度和它们之间的空白总计超过100%,这导致了中断。浮动它们以移除空间,并调整计算以使总计不超过100%。
将CSS更改为:
.inner {
width: 14%;
display: inline-block;
margin: 1%;
float:left;
}
<强> jsFiddle example 强>
答案 3 :(得分:0)
我已更新您的代码,请仔细检查 JSFIDDLE
您需要做的只是3个步骤:
display: inline-block;
并改为使用float:left
(使用float更好,你只需要理解它就好了)float
后clear:both
答案 4 :(得分:0)
这应该有效:
.inner {
width: 15%;
display: inline-block;
margin-right: 2%;
float:left;
}
.inner:last-child {
margin-right: 0;
}