2011-03-16 53 views
0

IE6和盒模型我有一个框是宽度:600px的 我喜欢有文本左侧,与在其他浏览器框是海军报与另一个在它侧(边栏/内容)的20像素 填充 它玩细的,内容与侧边栏在IE6定义具有填充

它看到的内容是600 + 20,巫推sidebat至底部...

你如何使用填充,这项工作在所有浏览器包括提前IE6

感谢

+2

你有正确的DOCTYPE设置?从我记忆中,IE6只使用破碎的盒子模型,如果它回落到怪癖模式。 ([Wikipedia似乎同意我的观点](http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug)) – 2011-03-16 20:49:39

+0

本文件已成功通过XHTML 1.0过渡! – menardmam 2011-03-16 22:11:46

+0

你能否在[JS Bin](http://jsbin.com/)上提供一个小测试用例? – thirtydot 2011-03-16 22:50:22

回答

1

如果您可以自由使用黑客,利用黑客下划线。

_width: 560px; // targets ie6 only 

否则

添加一个包装的div并添加填充到该div

<div style="width: 600px"> 
    <div style="padding: 0 20px"> 
    bla bla 
    </div> 
</div> 
+0

我不喜欢黑客,但这一个很好...和简单! – menardmam 2011-03-16 21:13:02

0

IE会看到如框560像素20像素的+左填充+ 20像素右侧填充到等于600,而不是600像素20像素的+左填充+ 20像素右侧填充(如浏览器应该看到它)。盒子模型的默认行为是获取盒子的宽度,然后为其添加填充和边距。

针对IE6的最佳方式是使用条件注释(http://css-tricks.com/how-to-create-an-ie-only-stylesheet/),然后在该样式表中设置框为宽度:560px。我假设你没有利润率,但如果你这样做,你也需要从整体宽度中减去这些利润。

+0

这不是一个好习惯破解样式表并添加条件...我有看到很多网站有很多很多的CSS为每个浏览器...但一些超级大工地......有没有......所以,有必须是一种方式...仍然看 – menardmam 2011-03-16 21:12:38