2014-10-27 27 views
0

如果您在具有固定宽度的父div中彼此相邻的多个div并且将子div的宽度设置为固定父级的百分比,有时子div不能全部在同一行显示,但子div的宽度百分比总和为100%。按宽度百分比设置多个div以填充彼此相邻的父div

HTML:

<div id="parent"> 
<div class="child" style="width:51.5%;">1</div> 
<div class="child" style="width:0.58333333333333%;">2</div> 
<div class="child" style="width:21.666666666667%;">3</div> 
<div class="child" style="width:0.56944444444444%;">4</div> 
<div class="child" style="width:15%;">5</div> 
<div class="child" style="width:0.23611111111111%;">6</div> 
<div class="child" style="width:6.7361111111111%;">7</div> 
<div class="child" style="width:0.69444444444444%;">8</div> 
<div class="child" style="width:2.3611111111111%;">9</div> 
<div class="child" style="width:0.47222222222222%;">10</div> 
<div class="child" style="width:0.18055555555556%;">11</div> 
</div> 

CSS:

#parent{ 
float:left; 
width:850px; 
overflow:hidden; 
} 

.child{ 
border:1px solid red; 
float:left; 
-webkit-box-sizing: border-box; 
-moz-box-sizing: border-box; 
box-sizing: border-box; 
background-color:blue; 
white-space: nowrap; 
overflow:hidden; 
} 

http://jsfiddle.net/4gvgqkkc/3/

任何想法?

+0

子像素四舍五入由不同浏览器管理。 – 2014-10-27 11:08:28

回答

0

从孩子中删除属性border,因为它增加了孩子的宽度。 同时加margin:0;padding:0;给孩子。如果你添加margin padding,他们会增加孩子的大小。如果需要的边界,它可以分配额外的边界

jsfiddle link

+0

我使用css box-sizing方法,因此给定的div宽度包含边框宽度,我想使用边框。 – Gregory 2014-10-27 11:59:55

+0

如果你想要边框,然后计算百分比宽度,使得在添加1px + 1px = 2px边框之后,它的宽度等于当前宽度; – Rasel 2014-10-27 12:03:47

+0

让宽度为10px,您声明。现在如果你添加1px的边框,那么它会进入10 + 1 + 1 = 12px;所以给%尺寸加入边框后达到10;即声明宽度= 8px;然后在添加边框后达到10px.ok?所以请使用8px的%而不是10px。 – Rasel 2014-10-27 12:06:45

0

这是因为孩子的div的总宽度大于100%,它的边界是附加的减少%的宽度。通过减小div的宽度来调整它。然后它们将出现在单行中

+0

[demo](http://jsfiddle.net/4gvgqkkc/4/) – Justin 2014-10-27 12:27:06