2013-12-20 25 views
0

我有一个具有可变宽度的div。 它包含6个div,应该有相同的宽度。 所有这6个div并排放置可填充父div的entiere空间。CSS - 如何设置多个div宽度以非圆形百分比填充父div空间

如何在CSS中设置子div宽度,因此我确定子边框和父窗口之间不会有空隙。

我已经尝试了很多值,但取决于父div的大小,有时我有右侧的空白,有时它超过了父div的限制,有时也没关系。尝试现在16%,17%,16.6%,16.51%,16.67%

这应该如何在CSS?

+0

要填充整个宽度,如果限制每个子元素的宽度,则百分比需要合计为100%。这是你的问题,还是我错过了什么? – thatidiotguy

+0

@thatidiotguy:是的,但100/6给出16.66666。根据父div的大小,即使使用16.6,我也有6个盒子需要更多的父宽度大小。所以我想知道如何在100除以框的数量时得到圆整的结果,甚至在使用最近的十进制结果时能够正确填充父宽度。 – Oliver

回答

0

试试这个fiddle

了解Flex显示

http://css-tricks.com/snippets/css/a-guide-to-flexbox/

是停止做计算它总是适合在网格

HTML

<div> 
    <p class="p1">1</p> 
    <p class="p1">2</p> 
    <p class="p1">3</p> 
    <p class="p1">4</p> 
    <p class="p1">5</p> 
    <p class="p1">6</p> 
</div> 
<div> 
    <p class="p1">1</p> 
    <p class="p1">1</p> 
    <p class="p1">1</p> 
    <p class="p1">1</p> 
    <p class="p2">2</p> 
</div> 

的最佳方式CSS

div { 
    display:-moz-box; 
    /* Firefox */ 
    display:-webkit-box; 
    /* Safari and Chrome */ 
    display:-ms-flexbox; 
    /* Internet Explorer 10 */ 
    display:box; 
    width:100%; 
    border:1px solid black; 
} 
.p1 { 
    -moz-box-flex:1.0; 
    /* Firefox */ 
    -webkit-box-flex:1.0; 
    /* Safari and Chrome */ 
    -ms-flex:1.0; 
    /* Internet Explorer 10 */ 
    box-flex:1.0; 
    border:1px solid red; 
} 
.p2 { 
    -moz-box-flex:2.0; 
    /* Firefox */ 
    -webkit-box-flex:2.0; 
    /* Safari and Chrome */ 
    -ms-flex:2.0; 
    /* Internet Explorer 10 */ 
    box-flex:2.0; 
    border:1px solid blue; 
} 
+0

虽然知道你的观众;在某些浏览器中对flexbox的支持还不是很好。 Caniuse.com是一个很好的参考来检查这种事情。 – yochannah

+0

我用你的想法为最后一个项目设置了一个不同的百分比,所以它的视觉效果与其他项目的视觉效果差不多,但最后它的宽度是100%。 – Oliver

相关问题