【发布时间】:2013-03-21 22:22:49
【问题描述】:
由于IE8不支持getComputedStyle,我们只能使用currentStyle。但是,它不会返回某些属性的真正“计算”值。
例如:
<style type="text/css">
#div {/* no properties are defined here */}
</style>
<div id="div">div</div>
// returns "medium" instead of 0px
document.getElementById('div').currentStyle.borderLeftWidth
// returns "auto" instead of 0px
document.getElementById('div').currentStyle.marginLeft
// returns "undefined" instead of 1
document.getElementById('div').currentStyle.opacity
是否有人在不使用 jQuery 或其他 Javascript 库的情况下为所有属性提供跨浏览器解决方案?
【问题讨论】:
-
IE
currentStyle对象显示这些属性的浏览器默认值。也许您可以使用 CSS 重置来规范所有浏览器的默认设置。 -
@Pointy 我正在寻找 Javascript 解决方案,因为我正在编写一个小型库,我不希望它改变用户的样式。
-
这个link 可能对你有帮助。
-
@Mr_Green 谢谢,但没有帮助。我以前看过那个页面。代码无法将
medium、auto等值解析为px。
标签: javascript internet-explorer cross-browser styles