首頁  >  文章  >  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