我注意到我正在维护的一个网站在 FF/IE8/Chrome 中存在一个小布局错误(例如在此页面上) - 左上角的图像有点高,误入顶部的标题。
我想知道为什么当我接管该站点时我没有注意到它,但我意识到它只是在我将 IE7 升级到 IE8 之后才变得明显 - 显然这个问题早就存在于“正确的”浏览器中。
对于这些“正确”的浏览器,这个绝对定位的图像需要将 top 属性设置为 59px,而不是 IE7(及更低版本)需要的 56px。
解决方案很简单,但是 a) 我想先了解问题,b) 我想考虑一系列解决方案(我知道会有不止一个)。考虑到这一点...
- 问题的原因是什么?
很多定位问题是由于错误的IE框模型,但我认为这已经被IE7修复了。它是仍然影响 IE7 的盒子模型问题还是不同的东西?
- 什么是最好的解决方案?
许多消息来源建议使用条件注释来包含 IE7 补丁 CSS 文件是要走的路:
<!--[if lte IE 7]>
<link href="IE7Fix.css" rel="stylesheet" type="text/css">
<![endif]-->
直截了当,但我宁愿不必将其插入网站上每个页面的标题中(但如果必须的话,我当然会这样做)。
我知道有许多 CSS hack 可能可以完成这项工作,但有一种学派认为应该避免使用 CSS,因为它们更难维护,尤其是在新的浏览器出现时。我当然可以同情这种心态;但是,该站点将在 3 个月内完全重新开发,因此我正在寻找一个短期解决方案。如果我选择使用 CSS hack,我需要做些什么来改变 IE7 及更低版本的行为?
我还读到好的重置样式表可以避免许多这些问题,所以为了一笑,我应用了 Eric Meyer 的Reset Reloaded样式表 - 正如预期的那样,它严重破坏了网站。
回顾一下,到底是什么问题?什么是最好的长期解决方案,什么解决方案最容易部署,给出问题的短期性质?
CSS('Banner02'):http ://new.eminox.com/_lib.css/content.css