三个分区容器并排:33.3333333%不工作?

时间:2013-11-03 00:32:19

标签: css html containers

我有一个宽度为1000px的div容器,其中三个div宽度为33.333333%,所有浮动:左。

可能有一个或两个像素的宽度未被99.999999%覆盖,其中100%-width容器div显示通过(参见右侧的图片 - 红色像素)。

我怎样才能解决这个问题,最好不要将它们分成4个div,每个甚至25%?

Pic

5 个答案:

答案 0 :(得分:3)

您可以获得准确而灵活的解决方案

如果您只float并在前两个元素上设置width,然后设置overflow: hiddenoverflow: auto(仅非visible)第三个元素,然后the magic works自动填充剩余空间,以便永远不会成为一个空白。

See this fiddle example,我已覆盖:last-child div的值以实现此目的。

答案 1 :(得分:1)

这有效:

<!DOCTYPE html>
<html>
<head>
    <style>
        div.container {
            width: 1000px;
            padding: 10px;
            background: #5cabc1;
            overflow: hidden;
        }

        div.box {
            box-sizing: border-box;
            -moz-box-sizing: border-box; /* Firefox */
            width: 33.3%;
            float: left;
        }

        div.b1 {
            background: #fca502;
        }

        div.b2 {
            background: #ffff00;
        }

        div.b3 {
            background: #afcfe4;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="box b1">div 1</div>
        <div class="box b2">div 3</div>
        <div class="box b3">div 3</div>
    </div>
</body>
</html>

http://jsfiddle.net/sVu4R/5/

答案 2 :(得分:1)

您需要使用box-sizing属性:

http://www.w3schools.com/cssref/css3_pr_box-sizing.asp

答案 3 :(得分:0)

试试这个:

display: inline-block;
margin: 0;
padding: 0; 

答案 4 :(得分:0)

CSS中的百分比宽度各自独立计算。因此,你最终得到三个333px div,剩下一个像素。

如果父元素具有固定宽度,只需将三列设置为适当的大小(333px,334px,333px)即可填充容器。不需要百分比!