【发布时间】:2011-10-20 15:43:06
【问题描述】:
我有一个复杂的网页(JavaScript 应用程序),其中包含的样式表包含以下规则:
.floatleft {
float: left;
margin-right: 10px;
}
在这个复杂的布局中有一个DIV 元素:
<div class="floatleft" width="25%">
我的问题是 IE9(怪癖模式)忽略了 floatleft 类。事实上,Firebug lite 说:This element has no style rules.。
页面上的其他规则工作正常,FireFox、Chrome 显示正确的布局。
更多见解:
- 这与
float:left无关,因为border:1px solid red也不显示。 - DIV 父级的父级还有另一个有效的
class属性。 - 有问题的 DIV 的嵌套子级也有一个有效的
class属性。 - 内联
style="float:left"有效。 - 删除
width属性没有帮助 - 完整的 CSS 代码在这里:http://pastebin.com/1JAATMZD
很遗憾,我无法在简化的测试用例中重现该问题(事实上,相同的规则在另一个应用程序中也可以正常工作),并且我无法为您提供查看问题的 URL,因为它是一个访问受限的应用程序。
如果有人能给我更多提示如何发现问题,我会很高兴。众所周知,AFAIK Internet Explorer 有时会弄乱样式规则。
【问题讨论】:
-
div 有宽度属性吗?我觉得应该是
style="width:25%;" -
怪癖模式?难怪您在实际使用 IE5 时会遇到 IE 问题。将
<!doctype html>添加到标记的开头。 -
这条规则之前的 CSS 中有什么?可能是它以某种方式干扰它,例如如果前面的文本被解释为选择器的一部分。
-
它应该接受样式,否则您能否将您所做的作为链接发送,以便我们识别问题。
-
+1 宽度属性未出现在 HTML4 允许的属性集中。
标签: css internet-explorer internet-explorer-9