首页  >  文章  >  web前端  >  JavaScript 可以访问具有无效名称的自定义 CSS 属性吗?

JavaScript 可以访问具有无效名称的自定义 CSS 属性吗?

Barbara Streisand
Barbara Streisand原创
2024-10-24 07:07:02137浏览

Can JavaScript Access Custom CSS Properties with Invalid Names?

从 JavaScript 访问无效的自定义 CSS 属性

可以使用 - 前缀创建自定义 CSS 属性。但是,可以从 JavaScript 访问这些自定义属性吗?

不幸的是,答案是否定的,至少在 Chrome 和 Firefox 等主流浏览器中是这样。 CSS 解析器会忽略名称无效的自定义 CSS 属性。例如,考虑以下 CSS:

<code class="css">div {
    -my-foo: 42;
}</code>

即使此 CSS 应用于 div,尝试使用 JavaScript 访问 -my-foo 属性也不会返回任何内容。 CSSStyleDeclaration 对象将仅包含有效的属性,例如宽度或高度。

此行为符合 CSSStyleDeclaration 规范。规范规定对象应该只包含“指定的属性”,这意味着自定义属性不被识别。但是,某些实现可能支持访问自定义属性,但这并不能保证。

如果访问自定义 CSS 属性对您的应用程序至关重要,您可以通过解析原始 CSS 文本来绕过 JavaScript 的限制。这可以使用样式元素的innerText属性来完成:

<code class="js">document.getElementsByTagName("style")[0].innerText</code>

虽然这种方法有效,但它并不像直接从 CSSStyleDeclaration 对象访问属性那么简单。此外,它需要对 CSS 文本进行额外的解析和操作。

以上是JavaScript 可以访问具有无效名称的自定义 CSS 属性吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn