我正在寻找一种从样式标签设置样式的元素中检索样式的方法。
<style>
#box {width: 100px;}
</style>
在身体里
<div id="box"></div>
我正在寻找不使用库的直接 javascript。
我尝试了以下方法,但一直收到空白:
alert (document.getElementById("box").style.width);
alert (document.getElementById("box").style.getPropertyValue("width"));
我注意到,如果我使用 javascript 设置了样式,我只能使用上述内容,但无法使用样式标签。
原文由 stan 发布,翻译遵循 CC BY-SA 4.0 许可协议
element.style
属性让您只知道在该元素中定义为 内联 的 CSS 属性(以编程方式,或在元素的 style 属性中定义),您应该获得 计算的 style 。跨浏览器的方式没那么容易,IE有自己的方式,通过
element.currentStyle
属性,而DOM Level 2 标准 的方式,其他浏览器通过document.defaultView.getComputedStyle
方法。这两种方式是有区别的,例如IE
element.currentStyle
属性期望你访问由 camelCase 中的两个或多个单词组成的CCS 属性名称(例如maxHeight
,fontSize
,backgroundColor
, etc), the standard way expects the properties with the words separated with dashes (egmax-height
,font-size
,background-color
等)。此外,IE
element.currentStyle
将以指定的单位返回所有尺寸(例如 12pt、50%、5em),标准方式将始终以像素为单位计算实际尺寸。我前段时间做了一个跨浏览器函数,它允许你以跨浏览器的方式获取计算的样式:
上述函数在某些情况下并不完美,例如对于颜色,标准方法将以 rgb(…) 表示法返回颜色,在 IE 上它们将按定义返回颜色。
我目前正在撰写有关该主题的文章,您可以在 此处 关注我对此功能所做的更改。