如何使动态数量的div平均占据容器中的所有空间?

时间:2013-08-28 19:37:27

标签: css css3 css-float

我有一个容器,其中有一个动态数量的div。我希望所有的div都适合一行而不包装,以便每个div具有相同的宽度。 div的数量和屏幕的大小都可以改变。我希望有一个css解决方案。

this fiddle中,灰色框应填充三个大小相等的红色,绿色和蓝色矩形。

我试过这个无济于事。

#container {
    width: 400px;
    border: 2px solid #CCCCCC;
}

#container div {
    width: auto;
    display: inline-block;
    height: 200px;
}

感谢您提供的任何帮助!

2 个答案:

答案 0 :(得分:7)

使你的html分隔符表现得像表集。表格分隔符(<td>)默认均匀分布。

HTML

<div class="table-div" style="width:100%">
    <div class="tr-div">
        <div class="td-div">td-div 1a</div>
        <div class="td-div">td-div 2a</div>
        <div class="td-div">td-div 3a</div>
        <div class="td-div">td-div 3b</div>
    </div>
    <div class="tr-div">
        <div class="td-div">td-div 1b</div>
        <div class="td-div">td-div 2b</div>
        <div class="td-div">td-div 3b</div>
        <div class="td-div">td-div 3b</div>
    </div>
</div>

CSS

.table-div{display:table} /* you can add table-layout:fixed; to suit your needs ([Yoshi][1])*/
.tr-div{display:table-row}
.td-div{display:table-cell;border:1px solid silver}

请参阅http://jsfiddle.net/sPm9M/

答案 1 :(得分:0)

如果我理解正确,无论容器的大小如何,你都希望div具有相同的宽度并且它们能够满足所有容器的需要吗?

如果是这种情况,很简单,你将100除以包含在容器中的div数,以获得每个div的正确百分比宽度。

这里:http://jsfiddle.net/XnC6k/3/