如何使用具有後備功能的 CSS 變數繼承值?
如何繼承CSS 變數中的值
CSS 變量,也稱為自訂屬性,允許我們以可以在整個專案中重複使用的方式儲存和操作值。樣式表。然而,CSS 變數的一個限制是它們無法從其父元素繼承值。
問題
例如,請考慮以下程式碼:
:root { --color: rgba(20, 20, 20, 0.5); /* Default value */ } .box { width: 50px; height: 50px; display: inline-block; margin-right: 30px; border-radius: 50%; position: relative; } .red { background: rgba(255, 0, 0, 0.5); } .blue { background: rgba(0, 255, 0, 0.5); } .box:before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; border-radius: 50%; transform: translateX(30px); background: var(--color); filter: invert(1); }
在此程式碼中,我們有一個:root 規則,它定義了一個預設值為rgba( 20, 20, 20, 0.5) 的--color 變數。我們還有一個 .box 類,用於為矩形元素設定一些樣式,以及一個 :before 偽元素,用於在框內建立圓形元素。
設定 :before 偽元素的背景屬性到 var(--color),這表示它將繼承 --color 變數的值。但是,我們可以使用內聯樣式覆寫每個框的--color 變數的值,如下例所示:
<div class="box red">
前兩個框的--color 變數設定為分別為rgba(0 , 255, 0, 0.5) 和rgba(0, 255, 255, 0.5),而第三個框將嘗試從其父級繼承--color 變數元素。然而,正如我們之前提到的,CSS 變數不能繼承值,因此第三個框的 --color 變數將保留其預設值 rgba(20, 20, 20, 0.5)。
解
var() 函數提供了一種為 CSS 變數定義回退值的方法,以防變數未定義或設定為其初始值。後備值被指定為var() 函數的第二個參數,如下例所示:
background: var(--color, inherit);
在此範例中,如果--color 變數未定義或設定為其初始值時,background屬性將繼承父元素的顏色。這正是我們在這種情況下想要的行為。
這是添加了後備值的更新代碼:
:root { --color: rgba(25, 25, 25, 0.5); /* Defined as the default value */ } .box { width: 50px; height: 50px; display: inline-block; margin-right: 30px; border-radius: 50%; position: relative; } .red { background: rgba(255, 0, 0, 0.5); } .blue { background: rgba(0, 0, 255, 0.5); } .box:before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; border-radius: 50%; transform: translateX(30px); background: var(--color, inherit); filter: invert(1); }
現在,所有三個框都將繼承其父框的顏色元素,即使在內聯樣式中將-- color 變數設定為不同的值。
以上是如何使用具有後備功能的 CSS 變數繼承值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

您是否曾經在項目上需要一個倒計時計時器?對於這樣的東西,可以自然訪問插件,但實際上更多

在元素個數不固定的情況下如何通過CSS選擇第一個指定類名的子元素在處理HTML結構時,常常會遇到元素個數不�...

關於Flex佈局中紫色斜線區域的疑問在使用Flex佈局時,你可能會遇到一些令人困惑的現象,比如在開發者工具(d...

格子呢是一塊圖案布,通常與蘇格蘭有關,尤其是他們時尚的蘇格蘭語。在Tartanify.com上,我們收集了5,000多個格子呢
