IE9不喜欢CSS中的裸数吗?

时间:2011-08-17 09:10:42

标签: html css styles

适用于Chrome,Safari和Firefox,但不适用于IE9

style='height:100'

IE9只是忽略它。但这可行:

style='height:100px'

不幸的是,我真的不想在我的所有价值观中添加“px”。它可以进行任何类型的操作(例如,将宽度乘以2,将其加100等)非常麻烦。这是预期的行为,是否有任何特殊标志,我可以设置IE9接受第一个例子?

(我知道内联样式通常被认为非常糟糕,但我有理由在某些特殊情况下使用它们)

5 个答案:

答案 0 :(得分:7)

style='height:100'可以在一些宽容的浏览器中运行,但实际上是无效的CSS,因此IE完全有权拒绝解析这些。

答案 1 :(得分:3)

由于CSS无效,(width:100)在任何浏览器中都不起作用:

http://jsbin.com/ovewus

<div style="width:100;background:red">test</div>

..除非您的网页位于Quirks Mode ,因为没有有效的doctype,如下所示:

http://jsbin.com/ovewus/2 - width:100  作品!

故意为Quirks Mode编写页面非常糟糕,只是不要这样做。

答案 2 :(得分:0)

我在这里看不到“裸”号:) http://www.w3.org/TR/CSS21/visudet.html#the-width-property因为100可以是px,em ..

“使用长度单位指定内容区域的宽度。”

答案 3 :(得分:0)

正如Gruikya所说,拥有非单位数字是无效的CSS(除非数字是0,或者样式是line-height),所以我肯定会建议添加正确的单位。如果你需要对这些单位进行数学运算,(我在Javascript中假设)那么你应该使用parseIntparseFloat,这些将很乐意忽略尾随单位。

答案 4 :(得分:0)

如果没有实际定义单位,则不应定义任何大小。你正在让浏览器猜测你想要使用哪个单位,因为你没有告诉他们。

根据浏览器遵循的CSS标准,不同的浏览器可能会以不同的方式处理它。

CSS2规范定义规则,不应忽略单位。它还提到这种行为可能(理论上)在future specification中发生变化。