Html IE9没有';我不喜欢CSS中的裸体数字?
这适用于Chrome、Safari和Firefox,但不适用于IE9Html IE9没有';我不喜欢CSS中的裸体数字?,html,css,styles,Html,Css,Styles,这适用于Chrome、Safari和Firefox,但不适用于IE9 style='height:100' IE9只是忽略了它。但这确实有效: style='height:100px' 不幸的是,我真的不想在我所有的值中添加一个“px”。这使得进行任何类型的操作(例如,将宽度乘以2,再加上100等)都非常麻烦。这是预期的行为吗?有没有什么特殊的标志可以让IE9接受第一个例子 (我知道内联样式通常被认为非常糟糕,但我有理由在某些特殊情况下使用它们)style='height:100'可能在一些
style='height:100'
IE9只是忽略了它。但这确实有效:
style='height:100px'
不幸的是,我真的不想在我所有的值中添加一个“px”。这使得进行任何类型的操作(例如,将宽度乘以2,再加上100等)都非常麻烦。这是预期的行为吗?有没有什么特殊的标志可以让IE9接受第一个例子
(我知道内联样式通常被认为非常糟糕,但我有理由在某些特殊情况下使用它们)
style='height:100'
可能在一些宽容的浏览器中工作,但实际上是无效的CSS,因此IE有权拒绝解析这些样式。我在这里没有看到“裸”数字:)因为100可以是px,em
“使用长度单位指定内容区域的宽度”,由于CSS无效(width:100
)在这些浏览器中实际上不起作用:
测试
。除非您的页面由于没有有效的doctype而处于,否则如下所示:
-宽度:100
工作
故意为怪癖模式编写页面是非常糟糕的,只是不要这样做。正如Gruikya所说,使用非单位数字是无效的CSS(除非数字是0,或者样式是
行高
),所以我绝对建议添加正确的单位。如果您需要对这些单位进行数学运算(我假设是在Javascript中),那么您应该使用parseInt
或parseFloat
,并且这些单位将很高兴地忽略后面的单位。在没有实际定义单位的情况下,您不应该定义任何大小。你让浏览器猜你想用什么单位,因为你没有告诉他们
根据浏览器遵循的CSS标准,不同的浏览器可能会以不同的方式处理它
CSS2规范定义了不带单位的规则,应该忽略。它还提到这种行为(理论上)可能会在中发生变化。您可能打算使用
100%
,在这种情况下,所有浏览器都会出错。CSS确实要求你对你的单位有明确的定义。当你说“任何种类的操作都非常麻烦”时,你是在说JavaScript,还是说“任何种类”都有意义。Javascript、Python等。。我给prettymuch的例子总结了这一点。我现在使用的不是x=x*2,而是x=(parseInt(x)*2)+“px”,它的字符数大约是原来的两倍,有大量可爱的粗糙部分,模糊了操作的目的,而且几乎令人讨厌。Python也会类似,除非我完全遗漏了什么?事实上,我看不出任何方式任何类型的操作都不会令人难以置信地麻烦,不管语言如何,不管操作是简单的还是复杂的,不管我是很少还是经常这样做。好吧,你要么忍受这种粗陋,要么编写函数将其抽象掉。例如,使用可以执行var x=$('#myDiv').width();x=x*2$(#myDiv')。宽度(x)代码>。除了thirtydot所说的以外,您还可以使用jQuery sizes插件来帮助您()这与浏览器的“容忍度”无关-不(?)浏览器将允许在“标准模式”下这样做。大多数(所有?)浏览器都有一个“怪癖模式”,允许类似的事情发生,这里有一些关于Firefox的文档:你是对的,但在最初的问题中,Chrome、Safari和Firefox似乎都处于怪癖模式,我猜IE9也应该处于怪癖模式。不同的浏览器在怪癖模式下可能会容忍不同的错误,这就是我所说的“容忍”。
<div style="width:100;background:red">test</div>