2014-10-27 71 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