当没有边界的,为什么IE返回medium
而FF返回以下查询0px
?的jQuery的.css()表现不同FF和IE
.css("border-left-width")
我在FF 3.6.3和IE 6/7中对此进行了检查。
当没有边界的,为什么IE返回medium
而FF返回以下查询0px
?的jQuery的.css()表现不同FF和IE
.css("border-left-width")
我在FF 3.6.3和IE 6/7中对此进行了检查。
使用css()
阅读样式表,样式的应用确实在不同的浏览器不同的事情。
在IE,其从IE-特定currentStyle
对象,这是访问此信息的唯一方式读取值。 currentStyle
为您提供了CSS调用‘specified style’的内容,也就是说您在样式表中所写的内容。如果你没有覆盖它,initial value of border-width
是'中等',所以这是你直接得到的。
在其他浏览器上,css()
使用标准DOM Level 2 CSS方法getComputedStyle()
。不像IE的currentStyle
,这将返回“计算样式”,它与指定的样式不同,因为像'medium'这样的相对单位被解析为实际长度。
这里'中'通常会解析为约3px
的长度,但您可能实际上没有为该元素打开边框,因此它默认为border-style: none
。这使得border-width
解析为零。
通常'指定样式'和'计算样式'彼此足够接近,以相同的方式处理它们,这就是jQuery的css()
方法所依赖的。但实际上它们并不完全相同。
这看起来像是刚刚返回浏览器的默认值。如果没有指定任何边框,则每个浏览器都有其自己的默认值。所以在这里,如果你要添加一个边框样式,IE会自动显示该样式的媒体边界,但FF就什么都没有,因为默认的宽度为0。
每当你设计一个网页的风格,你应该始终复位所有元素都设置为默认值,以便在所有浏览器中保持一致。
包括YUI的重置包在你的CSS,使所有值都在所有的浏览器fliud。
http://developer.yahoo.com/yui/reset/
然后当你调用的CSS元素的值将有都开始在相同的值,除非另一个jQuery的情况下改变它,你问前值。