4

当使用 IE8 通过开发者工具的浏览器模式功能查看 IE7 时,我遇到了一个奇怪的 CSS 反复出现的问题。当我对外部样式表进行更改然后在 HTML 中引用该类时,就像 IE7 根本无法识别它一样。但是,如果我将相同的样式内联,IE7 将服从它。有没有人听说过这个?这是一个简单的例子来帮助说明我在说什么:

外部样式表:

.bold {
    font-weight:bold;
}

在 HTML 中调用:

<p class="bold">My paragraph here</p>

尽管所有其他浏览器都可以,但在 IE7 中没有任何更改会生效。

但是,如果我这样做:

<p style="font-weight:bold;">My paragraph here</p>

IE7 似乎很高兴。有什么不同?我真的必须以这种方式进行 CSS 更改,还是有其他解决方法?

我很困惑可能是什么问题。我不知道开发人员工具的浏览器模式是否有一个怪癖并且不能像 IE7 的真实版本那样工作,或者这是否完全不同。我正在使用 IE8(我无法在这台政府计算机上升级到 IE9),但我听说问题仍然存在,因为我更改了 IE9 的 IE7 浏览器模式。

我们正在使用 ColdFusion 生成 HTML,使用 HTML5 doctype (),并且我在 2 个外部样式表引用中添加了一个时间戳参数,因此浏览器每次都被迫获取一个新副本。

非常感谢您对这个谜团的任何帮助-谢谢!

====== 对于@Stano 或任何有兴趣重现确切问题的人,这里是它的精简版:https ://docs.google.com/open?id=0B02DZPpIlMwGSk1VZHRDUHNCTkU (可以单击文件>下载以获取 zip)。请注意,在 IE7 中,"Photographer" 很好,因为它具有内联样式,但其他人什么都没有。

4

1 回答 1

1

关于您的评论,您说得对,这可能是一个缓存问题,但也可能是该样式表的问题(尽管看起来并非如此)、另一个样式表或无效的 HTML。

我想纠正你的一件事,因为我认为它可能会影响你对 CSS 和 HTML 如何交互的理解,是classHTML 元素中的属性不调用CSS。相反,CSS 规则告诉浏览器代理如何渲染具有某些属性的东西。这就是为什么我们能够使用元素 ID、名称、组名、类和其他值来识别要应用哪个类的元素。

我提到这一点是因为如果您的 HTML 无效(缺少结束标记、缺少箭头等),它可能会做各种奇怪的事情。几天前,它帮助我解决了一个问题,即错误放置的标签实际上导致我的脚本在我的一个页面上循环。

稍等片刻,使用W3C 标记验证器验证您的 HTML 。

于 2012-07-31T17:32:56.747 回答