相对定位是编写数千个IE黑客的噩梦的终极替代方案吗?

时间:2010-05-25 16:36:25

标签: css internet-explorer

我发现这非常有趣:

http://matthewjamestaylor.com/blog/ultimate-3-column-holy-grail-pixels.htm

他避免使用水平边距和填充来避免IE出现问题。我认为他使用相对定位“伪造”填充。

你有没有做过这样的事情? 我是否缺少针对IE黑客的常见趋势? 这种做法有任何缺点吗?

1 个答案:

答案 0 :(得分:1)

这个例子已经过时了。

像这样的边框和填充的问题是IE5的破损盒子模型的问题。在IE的更高版本中,如果IE位于quirks mode,您将只获得该破损的盒子模型。这是你应该不惜一切代价避免的事情。使用正确的doctype!

您实际链接的示例依赖该破损的盒子模型。他的更新版本没有: http://matthewjamestaylor.com/blog/holy-grail-no-quirks-mode.htm

但是你实际上试图解决什么样的IE问题?您是否特别想要在链接到的页面中使用3列布局?您想要IE布局问题的一般解决方案吗?或者你想完全忘记IE?

处理布局和IE6 / 7时最重要的事情是它的 hasLayout 属性。请阅读 On having layout ,了解相关的所有详细信息。

如果您专门寻找可以帮助您构建与所有浏览器兼容的复杂布局的工具,您可以查看YUI GridsBlueprint等网格框架。但我不能说我是那些人的粉丝,因为他们往往会产生无意义的div汤。

如果您不介意使用一些(实验性的)JavaScript自动修复整个网站,可以试试IE7.js。我已经使用了它,虽然它肯定有它的怪癖和限制,所以使用风险自负。

回到你原来的问题,相对定位不是任何东西的终极解决方案,它只是盒子里的工具之一。理解它并在适当的时候使用它。例如,请参阅Sitepoint's CSS layout and formatting reference。尽管它很干,但我发现CSS规范非常宝贵,尤其是visual formatting model details上的章节。