javascript - 我可以从 JavaScript 访问无效/自定义 CSS 属性的值吗?

标签 javascript css

假设我有以下 CSS:

div {
    -my-foo: 42;
}

我稍后可以在 JavaScript 中以某种方式知道 -my-foo CSS 属性对于给定 div 的值是多少?

最佳答案

我认为您不能访问无效的属性名称,至少它在 Chrome 或 Firefox 中对我不起作用。 CSSStyleDeclaration 只是跳过无效的属性。对于给定的 CSS:

div {
    width: 100px;
    -my-foo: 25px;
}

style:CSSStyleDeclaration 对象仅包含以下键:

0: width
cssText: "width: 100px"
length: 1

然而,有趣的是这就是 DOM-Level-2 Style spec说:

While an implementation may not recognize all CSS properties within a CSS declaration block, it is expected to provide access to all specified properties in the style sheet through the CSSStyleDeclaration interface.

暗示 CSSStyleDeclaration 对象应该在上面的示例中列出 -my-foo 属性。也许那里有一些支持它的浏览器。

我用于测试的代码位于 http://jsfiddle.net/q2nRJ/1/ .

注意:您始终可以通过解析原始文本来 DIY。例如:

document.getElementsByTagName("style")[0].innerText

但这对我来说似乎是很多工作,并且不知道您这样做的原因,我不能说是否存在更好的替代方法来解决您的问题。

关于javascript - 我可以从 JavaScript 访问无效/自定义 CSS 属性的值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2926326/

相关文章:

html - :first-child selecting all elements

javascript - 用户配置文件栏的更好方法

css - 如何将图标对齐在同一行

javascript - $state.reload() 移动到父级的 $state

php - 将用户 Gmail 联系人导入到我的网站并向他们的所有联系人发送邀请

javascript - 具有最小值和最大值的 jQuery 简单 slider

jquery - 在 asp.net+jquery 中将图像从一个面板拖放到另一个面板

JavaScript - 动画形状在 HTML5 <canvas> 中表现奇怪

javascript - 我可以从 HTML 元素获取已经存在的 JS 元素吗

html - 如何 flex : 1 affects height of flex items?