」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > JavaScript 可以存取具有無效名稱的自訂 CSS 屬性嗎?

JavaScript 可以存取具有無效名稱的自訂 CSS 屬性嗎?

發佈於2024-11-04
瀏覽:764

Can JavaScript Access Custom CSS Properties with Invalid Names?

從 JavaScript 存取無效的自訂 CSS 屬性

可以使用 - 前綴建立自訂 CSS 屬性。但是,可以從 JavaScript 存取這些自訂屬性嗎?

不幸的是,答案是否定的,至少在 Chrome 和 Firefox 等主流瀏覽器中是如此。 CSS 解析器會忽略名稱無效的自訂 CSS 屬性。例如,請考慮以下 CSS:

div {
    -my-foo: 42;
}

即使將此 CSS 套用到 div,嘗試使用 JavaScript 存取 -my-foo 屬性也不會傳回任何內容。 CSSStyleDeclaration 物件將只包含有效屬性,例如寬度或高度。

此行為符合 CSSStyleDeclaration 規範。規範規定物件應該只包含“指定的屬性”,這意味著自訂屬性不被識別。然而,某些實作可能支援存取自訂屬性,但這並不能保證。

如果存取自訂 CSS 屬性對您的應用程式至關重要,您可以透過解析原始 CSS 文字來繞過 JavaScript 的限制。這可以使用樣式元素的innerText屬性來完成:

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

雖然這種方法有效,但它並不像就像直接從CSSStyleDeclaration 物件存取屬性一樣簡單。此外,它需要對 CSS 文字進行額外的解析和操作。

版本聲明 本文轉載於:1729724578如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3