IE7间距问题浮动DIV与左右边距
我想创建一些宽度和边界在DIVs百分比的列可以适应,在任何具有动态宽度的容器内。IE7间距问题浮动DIV与左右边距
<div class="gridFluid">
<div class="col-1-4"></div>
<div class="col-1-4"></div>
<div class="col-1-4"></div>
<div class="col-1-4"></div>
</div>
* {
margin: 0;
padding: 0;
}
body {
font-size: 1%
}
.gridFluid {
width: 960px;
display: table;
background: #eee;
font-size: 0px;
overflow: auto;
zoom: 1;
}
.col-1-4 {
background: #ddd;
height: 200px;
width: 23%;
display: table-cell;
*display: inline;
zoom:1;
margin-left: 1%;
margin-right: 1%;
float: left;
}
它的工作如预期无处不在,但在IE7中最后一列是不能在单行适当地配合。可能是因为它会在DIV之间增加额外的空间,而非其余空间。
我不想为IE7使用不同的宽度或边距(宽度:24.5%,而不是25)。因为这不是一个合适的解决方案。我正在寻找一个好的解决方案。
可能是IE7的已知问题,当我寻找解决方案时,我发现很多问题与它有关,但没有得到任何正确的方法来解决我的问题。
只是做一个小的改变你的CSS ...
变化: -
.col-1-4 {
width: 23%;
}
要这样: -
.col-1-4 {
*width: 22.9%;
width: 23%;
}
让我们做一些基于快速计算关闭你的CSS。
您希望每列都是容器宽度的23%。因此,每列应该是:
0.23 * 960 = 220.8
所以每列应该是220.8像素。
您希望每个边距都为1%宽。
0.01×960 = 9.6
因此,每个余量应该9.6像素宽。
等一下。我们有一些部分像素。你如何处理像素的.8或.6?那么你必须做一些四舍五入。但是你是以哪种方式上下调整的?那么如果你四舍五入,你会得到4列221个像素。
221 * 4 = 884
所以列的总宽度是估计的884个像素。
边距如何?
8 * 10 = 80
所以边缘的总宽度是估计的80个像素。
现在让我们一起添加这些数字。
80 + 884 = 964
人力资源管理模式...看起来我们这里还有4个额外的像素...更好地推动内容下一行,以适应960像素宽框。
这就是为什么您的列正被推下。 此外,退房:http://ejohn.org/blog/sub-pixel-problems-in-css/
谢谢,解释它在细节。现在我明白了问题所在。你有任何解决方案吗?例如,如果我们已经在单侧定义了边距,那么同样的事情正确地工作。例如,如果我们定义保证金的权利:2%或保证金2%左右是相同的情况下,它会正常工作 – Tarun 2013-04-04 06:33:48
双divs如何。这显然会解决问题。
.col-1-4 {
position:relative;
background: #eee;
height: 200px;
width: 25%;
/*******************************/
/* Don't use this properties, not necessary here */
display: table-cell;
*display: inline;
/*******************************/
zoom:1;
float: left;
}
.col-1-4>div {
background: #ddd;
position:absolute;
left:4%;
right:4%; /* 100/25 = 4 */
top:0;
bottom:0;
}
正如我在我的问题提我试图忽略它。因为它只会给你一个大致的结果,不是我父母 – Tarun 2013-04-04 06:27:02
完全相同的宽度,他们是没有其他的解决方案,因为它是一个IE错误,所以你必须使用CSS的黑客... – SaurabhLP 2013-04-04 06:30:54