創建具有自定義屬性,HSL和Little calc()的彩色主題
在CSS自定義屬性(通常稱為“變量”)之前,在單個網站上管理多種配色方案需要單獨的樣式表 - 一種麻煩的方法。現在,我們可以在單個樣式表中定義變量,並讓CSS處理變體。
即使沒有用戶定義的主題,範圍內的主題也很有價值。例如,不同的部分可能採用不同的調色板。
讓我們構建一個示例:我們的示例在各節之間使用一致的輕度,僅變化。單個色調的簡化調色板看起來像這樣:[[示例為簡潔而省略了示例調色板,正如原始作品中的視覺表示]。多種色調會擴展這一點,可以輕鬆地使用HSL管理一個值。
利用自定義屬性
自定義屬性廣泛支持且容易填充,可為較舊的瀏覽器提供,提供與標準CSS相似的簡單語法。基本用法如下:[正如原始概念上解釋的那樣,省略了簡潔的基本用法示例]。變量通常在:root
偽元素上定義,但可以使用諸如數據屬性之類的屬性將其範圍範圍為特定元素。
集成calc()
自定義屬性不限於固定值。 calc()
函數可以在一致的模式中啟用動態值計算:[示例使用calc()省略了簡潔的calc(),正如原始概念上所述的那樣]。儘管CSS缺乏循環,但預處理器可以幫助生成代碼的一部分(但請記住:CSS變量與SASS變量不同)。
實踐實施CSS變量
我們的目標是在不同的頁面部分更改組件的顏色。我們將使用具有ID的三個部分: #food
, #lifestyle
和#travel
,每個部分都與不同的色調相關聯。 .wrapper
div上的data-theme
屬性確定活動色調。當#travel
處於活動狀態時--first-hue
(例如,藍綠色的180°)被分配給--hue
。
<div data-theme="travel"> </div> <style> .wrapper[data-theme="travel"] { --hue: var(--first-hue); /* = 180° = teal */ } </style>
一個小的JavaScript片段根據單擊“ Tabs”單擊更新data-theme
屬性,然後刪除哈希( #
)。這利用JavaScript操縱CSS的能力,與編譯後是靜態的預處理器變量不同。
漸進式增強
為了確保JavaScript禁用的用戶可訪問性,我們添加了漸進式增強:
//漸進式增強: //沒有JavaScript所有部分顯示,僅在頁面加載時設置主題 wrapper.dataset.theme = wrapper.queryselector('section')。 id;
即使沒有JavaScript,這也可以確保基本功能。
雖然這裡使用了單頁方法,但是將部分作為單獨的頁面提供服務器端data-theme
設置也是可行的。
替代方法
如果顏色值不會線性變化,我們可以將樣式表分開:[示例為簡潔而省略,正如原始概念上的概念上的解釋]。
支持Web組件
主題Web組件需要:host-context()
偽選擇器:[示例為簡潔而省略,正如原始概念上解釋的那樣]。
結論
CSS自定義屬性簡化了網站主題,可提高可維護性,性能和與JavaScript的集成。結合HSL和calc()
,它們解鎖功能強大的主題功能,超越簡單的顏色更改為用戶控制的主題。
以上是創建具有自定義屬性,HSL和Little calc()的彩色主題的詳細內容。更多資訊請關注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)

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

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

我關注的一件事是Lea Verou&#039; s conic-Gradient()Polyfill的功能列表是最後一項:
