> css變量(正式稱為自定義屬性)是用戶定義的值,可以設置一次,並在整個代碼庫中多次使用。它們使管理顏色,字體,大小和動畫值變得更容易,並確保跨Web應用程序的一致性。 例如,您可以將品牌顏色設置為CSS屬性( - PrimaryColor:#7232fa),並在使用您的品牌顏色的任何組件或樣式中使用此值(varracky:var( - prienditcolor);)。
除了提供清潔器和非重複代碼外,CSS變量還可用於構建調色板,提高響應能力並創建動態類型系統。這篇文章是從我的指南CSS Master中提取的,該帖子教您編寫更好,更有效的CSS。您還將學會掌握將改善工作流程並構建更好應用程序的工具。
CSS自定義屬性簡介:CSS變量或自定義屬性,允許開發人員在整個樣式表中定義一個值並重複使用它們。這通過簡化顏色,字體,大小和動畫值的管理來增強跨Web應用程序的代碼可維護性和一致性。自定義屬性可以在整個項目中廣泛應用,以最小的努力實現動態更新和主題調整。
實際實現和擴展功能:通過示例,本文說明瞭如何定義,使用和操縱CSS自定義屬性出於各種目的,包括主題和響應能力。它突出了CSS變量與媒體查詢和JavaScript結合使用的多功能性,展示了它們具有顯著簡化樣式策略的潛力,尤其是在基於組件的框架中,例如React,Angular和Vue。這種方法鼓勵一種模塊化,可維護和可擴展的構建Web接口的方式。
定義CSS自定義屬性
這是一個示例:
<span>--primarycolor: #0ad0f9ff; /* RGB alpha hexadecimal color notation */</span>
- 向CSS解析器指示這是自定義屬性。當用作變量時,解析引擎將用其值代替屬性。
案例敏感。這意味著 - 主要彩色和 - 原色被認為是兩個不同的屬性名稱。這與傳統的CSS背道而馳,其中財產和價值案件無關緊要。但是,這與eCmascript中可變名稱的規則一致。 與其他屬性(例如顯示或字體)一樣,必須在聲明塊中定義CSS自定義屬性。一種常見的模式是使用以下方式定義自定義屬性:
:root是一個偽元素,指的是文檔的根元素。對於HTML文檔,這是元素。對於SVG文檔,它是
<span><span>:root</span> { </span> <span>--primarycolor: #0ad0f9ff; </span><span>}</span>使用CSS變量
要使用自定義屬性作為變量,我們需要使用var()函數。例如,如果我們想將我們的PrimaryColor自定義屬性用作背景顏色,我們將執行以下操作:
我們的自定義屬性的價值將成為背景色屬性的計算值。
<span>body { </span> <span>background-color: var(--primarycolor); </span><span>}</span>存儲為變量,然後重複使用。以下CSS行不通:
>您也無法將屬性 - 價值對作為變量並重複使用。以下示例也無效:
<span><span>:root</span> { </span> <span>--top-border: border-top; /* Can't set a property as custom property's value */ </span> <span>var(--top-border): 10px solid #bc84d8; /* Can't use a variable as a property */ </span><span>}</span>>最後,您不能將變量作為值字符串的一部分串聯:
> CSS自定義屬性與CSS變量
“自定義屬性”是一個未來的範圍名稱,可以說明有一天如何使用此功能。但是,如果CSS擴展規範由瀏覽器供應商實施,這可能會改變。該規範定義了使用自定義選擇器組合,函數和插曲擴展CSS的方法。<span><span>:root</span> { </span> <span>--text-color: 'color: orange'; /* Invalid property value */ </span><span>} </span><span>body { </span> <span>var(--text-color); /* Invalid use of a property */ </span><span>}</span>
>我們通常將自定義屬性稱為“變量”,迄今為止,這是我們使用它們的唯一方法。從理論上講,它們不是完全可互換的術語。在實踐中,就目前而言,它們是。在這篇文章中,我主要會使用自定義屬性
,因為這是他們的專有名稱。當它使句子更清晰時,我將使用<span><span>:root</span> { </span> <span>--base-font-size: 10; </span><span>} </span><span>body { </span> <span>font: var(--base-font-size)px / 1.25 sans-serif; /* Invalid CSS syntax */ </span><span>}</span>>變量。
var()函數最多接受兩個參數。第一個參數應該是自定義屬性名稱。第二個論點是可選的,但必須是聲明值。此聲明值可作為未定義自定義屬性值時應用的後備或默認值。
>
讓我們以以下CSS:
<span>--primarycolor: #0ad0f9ff; /* RGB alpha hexadecimal color notation */</span>
如果定義了 - accent-coltor,則說明其值為#f30,然後使用.btn__call-to-Action類屬性的任何路徑的填充顏色都會帶有紅橙色填充。如果未定義,則填充將是深藍色。
也可以嵌套聲明值。換句話說,您可以將變量用作var函數的後備值:在上面的CSS中,如果定義了-books-bg,則背景顏色將設置為-books-bg屬性的值。如果沒有,背景顏色將是分配給-Arts-BG的任何值。如果兩個都沒有定義,則背景顏色將是屬性的初始值 - 在這種情況下,透明。
當自定義屬性具有與之使用的屬性無效的值時,<span><span>:root</span> { </span> <span>--primarycolor: #0ad0f9ff; </span><span>}</span>發生類似的事情。考慮以下CSS:
在這種情況下, - 英尺鏈路懸掛屬性的值不是有效的顏色。相反,頁腳A:懸停從元素的顏色繼承其顏色。
>
自定義屬性以相同的方式解決其他CSS值。如果該值無效或未定義,則CSS解析器如果屬性是繼承的(例如顏色或字體),則使用繼承的值,如果沒有屬性,則將使用初始值(如背景色)。<span>body { </span> <span>background-color: var(--primarycolor); </span><span>}</span>>
>級聯值
自定義屬性也遵守級聯的規則。隨後的規則可以覆蓋它們的價值:
<span><span>:root</span> { </span> <span>--top-border: border-top; /* Can't set a property as custom property's value */ </span> <span>var(--top-border): 10px solid #bc84d8; /* Can't use a variable as a property */ </span><span>}</span>在這種情況下,任何包裹在
元素標籤中的文本都是橙色的。但是
>
>您還可以使用樣式屬性設置自定義屬性的值,例如,style =“ - 品牌色:#9A09AF”。<span><span>:root</span> { </span> <span>--text-color: 'color: orange'; /* Invalid property value */ </span><span>} </span><span>body { </span> <span>var(--text-color); /* Invalid use of a property */ </span><span>}</span>>自定義屬性和調色板
自定義屬性特別適合管理HSL調色板。
hsl代表
色調,飽和度,輕度hsl參數單位 >在HSL()和HSLA()函數的第一個參數中使用無單位值時,瀏覽器假定它是度單位的角度。但是,您可以使用任何支持的CSS角度單元。藍色也可以表示為HSL(240DEG,100%,50%),HSL(4.188RAD,100%,50%)或HSLA(0.66Turn,100%50%)。
>這是很有趣的地方。我們可以使用自定義屬性設置我們的色調值,並通過調整飽和度和輕度值來設置更輕和較深的陰影:
這是一個簡單的版本,但是您也可以使用自定義屬性來調整飽和度和亮度值。
<span>--primarycolor: #0ad0f9ff; /* RGB alpha hexadecimal color notation */</span>強大的調色板生成
Dieter Raber討論了一種在“創建具有自定義屬性,HSL和Little Calc()的顏色主題的穩健調色板的技術”。
>這一點CSS為我們提供了下面所示的熱帶風格的配色方案。
使用CSS變量製作深色主題調色板
>您可以使用CSS自定義屬性來定義網站上的黑暗和光主題的一組變量。 以頁面樣式的以下示例,我們可以在不同的選擇器中使用變量替換所有HSL顏色,以定義以下顏色的自定義屬性:root:root: nav背景的顏色,而 - nav-text-color是指nav nav前景/文本的顏色。
現在復制:root選擇器具有其內容,但添加一個主題屬性,用dark >
如果A dark> dark 值將添加到元素中。 element。
>現在,我們可以通過降低HSL顏色的輕度值來提供這些變量的值,以提供深色主題,或者我們可以使用其他技術,例如Invert()和brightness()和brightness(),它通常用於調整圖像的渲染,但也可以與任何其他元素一起使用。
>將以下代碼添加到:root [theme ='dark']: 亮度()過濾器使元素更明亮或更暗。值為0導致完全黑暗的元素。 <span>--primarycolor: #0ad0f9ff; /* RGB alpha hexadecimal color notation */</span>
<span><span>:root</span> {
</span> <span>--primarycolor: #0ad0f9ff;
</span><span>}</span>
<span>body { </span> <span>background-color: var(--primarycolor); </span><span>}</span>
用JavaScript
切換主題>現在,當用戶單擊
以上是如何在CSS中使用變量:CSS自定義屬性的詳細內容。更多資訊請關注PHP中文網其他相關文章!