首頁 >web前端 >css教學 >CSS 變數可以在 `url()` 函數中使用嗎?

CSS 變數可以在 `url()` 函數中使用嗎?

Barbara Streisand
Barbara Streisand原創
2024-12-22 09:04:44434瀏覽

Can CSS Variables Be Used Inside the `url()` Function?

CSS 變數可以用 url() 進行內插嗎?

儘管 CSS 變數被廣泛使用,但在插值方面仍然存在限制它們在 url() 函數中。此限制源自於 url() 標記的遺留性質。

在現代 CSS 中,自訂屬性的內插法是一項基本功能。它允許將動態值插入到各種函數中,例如 rgba()。但是, url() 函數是此規則的例外。

當使用 url(var(--url)) 時,解析器將其解釋為單一 url() 標記,而不是一個 url() 函數標記和一個變數表達式。因此,變數本身被視為 URL,從而導致插值無效。

要避免此問題,請避免在 url() 中從多個變數表達式建構 URL 標記。這包括諸如 --uo: url(; --uc: ); 之類的方法和背景:var(--uo) var(--url) var(--uc);。自訂屬性不能包含不符合的字串分隔符號或 url() 標記的一部分。

對於背景,解決方案在於在自訂屬性中指定完整的url() 表達式並直接取代它:

:root {
  --url: url("https://download.unsplash.com/photo-1420708392410-3c593b80d416");
}

body {
  background: var(--url);
}

或者,可以使用JavaScript 代替var() 來執行插值。

以上是CSS 變數可以在 `url()` 函數中使用嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn