我有一个宽度为1000px的div容器,其中三个div宽度为33.333333%,所有浮动:左。
可能有一个或两个像素的宽度未被99.999999%覆盖,其中100%-width容器div显示通过(参见右侧的图片 - 红色像素)。
我怎样才能解决这个问题,最好不要将它们分成4个div,每个甚至25%?
答案 0 :(得分:3)
如果您只float
并在前两个元素上设置width
,然后设置overflow: hidden
或overflow: 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>
答案 2 :(得分:1)
您需要使用box-sizing属性:
答案 3 :(得分:0)
试试这个:
display: inline-block;
margin: 0;
padding: 0;
答案 4 :(得分:0)
CSS中的百分比宽度各自独立计算。因此,你最终得到三个333px div,剩下一个像素。
如果父元素具有固定宽度,只需将三列设置为适当的大小(333px,334px,333px)即可填充容器。不需要百分比!