我的div.wrap
宽100%,内有3 div
。
我需要3 div
具有相同的宽度,并且可以填充div.wrap
的所有空格。
我试过这样的事情: HTML:
<div class="wrap">
<div></div>
<div></div>
<div></div>
</div>
的CSS:
.wrap{width:100%;position:relative;}
.wrap div{width:33.3%;float:left;}
但是在绝对右侧,我有2px空白,我需要填补所有空间。有没有人知道这方面的解决方案?
答案 0 :(得分:2)
设置最后一个div的宽度,使得宽度之和等于100:
.wrap {
overflow: hidden;
}
.wrap div {
width: 33.3%;
float: left;
background-color: red;
}
.wrap div:last-child {
width: 33.4%;
}
答案 1 :(得分:2)
通过模拟Tables行为,我们可以轻松实现这一目标:
HTML:
<div class="wrap">
<div>a</div>
<div>b</div>
<div>c</div>
</div>
的CSS:
.wrap{
display: table;
table-layout: fixed;
width: 100%;
}
.wrap div{
display: table-cell;
width: 100%;
}
随意添加一些背景颜色和内容到.wrap div
以检查尺寸。
答案 2 :(得分:1)
由于您只能设置最大精度为1px
的元素的宽度,因此可能有一个div大于其他div,您无法真正避免这种情况。话虽如此,要使最后一个div填充剩余的1-2px
,请执行以下操作:
.wrap #div3 {width:33.4%;}
其中#div3
是最后div
(或任何div,但只有一个)的ID。
答案 3 :(得分:0)
这里只是为了解决另一种使用不同修复的方法:
.wrap div {
float: left;
width: 33.3%;
}
.wrap div:last-child {
float: none;
width: auto;
margin-left: 66.6%;
}
我过去曾遇到过部分百分比(主要是Internet Explorer)的问题,他们计算的比例大于100% - 意味着你的第三列会下降。上面讲述了div填充空间的自然习惯,以及在这个自动宽度计算中吃掉边缘的自然习惯。