日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

更現(xiàn)代化方式實(shí)現(xiàn)明暗模式,兩行CSS搞定!

來源: 責(zé)編: 時(shí)間:2023-10-13 14:36:17 279觀看
導(dǎo)讀在Web開發(fā)中,有時(shí)希望能夠根據(jù)用戶的偏好模式(明暗模式)來更改網(wǎng)頁的顏色。以前們需要使用媒體查詢(prefers-color-scheme)來實(shí)現(xiàn)這個(gè)功能。但現(xiàn)在,CSS提供了一個(gè)更簡單的方法:light-dark()函數(shù)。這個(gè)函數(shù)可以接受兩種不同的

4LB28資訊網(wǎng)——每日最新資訊28at.com

在Web開發(fā)中,有時(shí)希望能夠根據(jù)用戶的偏好模式(明暗模式)來更改網(wǎng)頁的顏色。以前們需要使用媒體查詢(prefers-color-scheme)來實(shí)現(xiàn)這個(gè)功能。但現(xiàn)在,CSS提供了一個(gè)更簡單的方法:light-dark()函數(shù)。這個(gè)函數(shù)可以接受兩種不同的顏色作為參數(shù),根據(jù)當(dāng)前所使用的顏色方案,自動(dòng)輸出其中的一種顏色,從而實(shí)現(xiàn)自適應(yīng)的顏色顯示。4LB28資訊網(wǎng)——每日最新資訊28at.com

圖片4LB28資訊網(wǎng)——每日最新資訊28at.com

以前的明暗模式實(shí)現(xiàn)

要根據(jù)所使用的淺色模式或深色模式更改顏色值,通常會(huì)使用 prefers-color-scheme 媒體查詢來更改自定義屬性的值:4LB28資訊網(wǎng)——每日最新資訊28at.com

:root {  --text-color: #333; /* 淺色模式的值 */}@media (prefers-color-scheme: dark) {  --text-color: #ccc; /* 深色模式的值 */}

在實(shí)現(xiàn)深色模式時(shí),通常會(huì)出現(xiàn)一堆重復(fù)的CSS變量,用于設(shè)置每種模式的值。然后,CSS 將使用這些自定義屬性進(jìn)行實(shí)際聲明。4LB28資訊網(wǎng)——每日最新資訊28at.com

body {  color: var(--text-color);}

未來的明暗模式實(shí)現(xiàn)

CSS 顏色模塊第 5 級(jí)規(guī)范[1]的新增了 light-dark() 函數(shù)。該函數(shù)接受兩個(gè)顏色值作為其參數(shù)。根據(jù)正在使用的顏色方案,它將輸出第一個(gè)或第二個(gè)顏色參數(shù)。4LB28資訊網(wǎng)——每日最新資訊28at.com

light-dark(<color>, <color>);

根據(jù)規(guī)范,如果使用的顏色方案是light或未知,則該函數(shù)計(jì)算為第一種顏色的計(jì)算值;如果使用的顏色方案是dark,則計(jì)算為第二種顏色的計(jì)算值。4LB28資訊網(wǎng)——每日最新資訊28at.com

使用的顏色方案不僅是用戶選擇的亮暗模式,還需要根據(jù)color-scheme屬性的值確定使用的顏色方案。color-scheme屬性可以指示元素使用哪種顏色方案進(jìn)行渲染,這個(gè)方案會(huì)與用戶的偏好進(jìn)行協(xié)商,最終確定使用的顏色方案。因此,在使用light-dark()函數(shù)時(shí),還需要在CSS中包含對(duì)應(yīng)的color-scheme聲明,以確保函數(shù)能夠正確工作。4LB28資訊網(wǎng)——每日最新資訊28at.com

:root {  color-scheme: light dark;}:root {  --text-color: light-dark(#333, #ccc); }

對(duì)于上面的代碼,在淺色模式下返回第一個(gè)值,在深色模式下返回第二個(gè)值。4LB28資訊網(wǎng)——每日最新資訊28at.com

由于設(shè)置了color-scheme,這意味著可以針對(duì)某個(gè)元素覆蓋其值,以強(qiáng)制其進(jìn)入特定模式。4LB28資訊網(wǎng)——每日最新資訊28at.com

.dark {  color-scheme: dark; }

對(duì)于上面的代碼,該元素及其子元素上的 light-dark() 將始終返回 dark對(duì)應(yīng)的值。4LB28資訊網(wǎng)——每日最新資訊28at.com

Demo

如果你的瀏覽器支持light-dark()函數(shù),下面的演示將顯示幾個(gè)標(biāo)有.auto的<div>元素,這些元素會(huì)響應(yīng)切換到淺色或深色模式。而具有.light或.dark類的<div>元素則強(qiáng)制進(jìn)入它們的正確模式。4LB28資訊網(wǎng)——每日最新資訊28at.com

#demo {	color-scheme: light dark;		.dark {		color-scheme: dark;	}	.light {		color-scheme: light;	}		& div {		background: light-dark(#d4d4d4, #000);		color: light-dark(#333, #ccc);	}}

瀏覽器支持

light-dark() 函數(shù)的瀏覽器支持如下:4LB28資訊網(wǎng)——每日最新資訊28at.com

  • Chromium (Blink): ? 不支持。
  • Firefox (Gecko): ? Firefox 120 開始支持。
  • Safari (WebKit): ? 不支持。

可以通過以下代碼來判斷當(dāng)前使用的瀏覽器是否支持 CSS light-dark()函數(shù):4LB28資訊網(wǎng)——每日最新資訊28at.com

@supports(color: light-dark(#fff, #000)) {	#output::after {		content: "? 瀏覽器支持 light-dark()";		background-color: #00ff002b;	}}

關(guān)注瀏覽器的支持情況:4LB28資訊網(wǎng)——每日最新資訊28at.com

  • Chromium/Blink: Issue #1490618[2] — 已指派(開放狀態(tài))
  • Firefox/Gecko: Issue #1856999[3] — 已解決 (已修復(fù))
  • Safari/WebKit: Issue #262914[4] — 新建狀態(tài)

[1]CSS 顏色模塊第 5 級(jí)規(guī)范: https://drafts.csswg.org/css-color-5/。4LB28資訊網(wǎng)——每日最新資訊28at.com

[2]Issue #1490618: https://bugs.chromium.org/p/chromium/issues/detail?id=1490618。4LB28資訊網(wǎng)——每日最新資訊28at.com

[3]Issue #1856999: https://bugzilla.mozilla.org/show_bug.cgi?id=1856999。4LB28資訊網(wǎng)——每日最新資訊28at.com

[4]Issue #262914: https://bugs.webkit.org/show_bug.cgi?id=262914。4LB28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-13270-0.html更現(xiàn)代化方式實(shí)現(xiàn)明暗模式,兩行CSS搞定!

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 一勞永逸地搞懂 JavaScript中This

下一篇: Java拋出異常后,后續(xù)代碼是否繼續(xù)執(zhí)行?

標(biāo)簽:
  • 熱門焦點(diǎn)
  • K60至尊版狂暴引擎2.0加持:超177萬跑分?jǐn)孬@性能第一

    Redmi的后性能時(shí)代戰(zhàn)略發(fā)布會(huì)今天下午如期舉辦,在本次發(fā)布會(huì)上,Redmi公布了多項(xiàng)關(guān)于和聯(lián)發(fā)科的深度合作,以及新機(jī)K60 Ultra在軟件和硬件方面的特性,例如:“K60 至尊版,雙芯旗艦
  • 容量越大越不壞?24萬塊硬盤故障率報(bào)告公布 這些產(chǎn)品零故障

    8月5日消息,云存儲(chǔ)服務(wù)商Backblaze發(fā)布了最新的硬盤故障率報(bào)告,年故障率有所上升。Backblaze發(fā)布的硬盤季度統(tǒng)計(jì)數(shù)據(jù),其中包括故障率等重要方面。這些結(jié)
  • 消息稱迪士尼要拍真人版《魔發(fā)奇緣》:女主可能也找黑人演員

    8月5日消息,迪士尼確實(shí)有點(diǎn)忙,忙著將不少動(dòng)畫改成真人版,繼《美人魚》后,真人版《白雪公主》、《魔發(fā)奇緣》也在路上了。據(jù)外媒消息稱,迪士尼將打造真人版
  • JavaScript 混淆及反混淆代碼工具

    介紹在我們開始學(xué)習(xí)反混淆之前,我們首先要了解一下代碼混淆。如果不了解代碼是如何混淆的,我們可能無法成功對(duì)代碼進(jìn)行反混淆,尤其是使用自定義混淆器對(duì)其進(jìn)行混淆時(shí)。什么是混
  • 一文掌握 Golang 模糊測試(Fuzz Testing)

    模糊測試(Fuzz Testing)模糊測試(Fuzz Testing)是通過向目標(biāo)系統(tǒng)提供非預(yù)期的輸入并監(jiān)視異常結(jié)果來發(fā)現(xiàn)軟件漏洞的方法。可以用來發(fā)現(xiàn)應(yīng)用程序、操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議等中的漏洞或
  • 中國家電海外掘金正當(dāng)時(shí)|出海專題

    作者|吳南南編輯|胡展嘉運(yùn)營|陳佳慧出品|零態(tài)LT(ID:LingTai_LT)2023年,出海市場戰(zhàn)況空前,中國創(chuàng)業(yè)者在海外紛紛摩拳擦掌,以期能夠把中國的商業(yè)模式、創(chuàng)業(yè)理念、戰(zhàn)略打法輸出海外,他們依
  • 猿輔導(dǎo)與新東方的兩種“歸途”

    作者|卓心月 出品|零態(tài)LT(ID:LingTai_LT)如何成為一家偉大企業(yè)?答案一定是對(duì)&ldquo;勢&rdquo;的把握,這其中最關(guān)鍵的當(dāng)屬對(duì)企業(yè)戰(zhàn)略的制定,且能夠站在未來看現(xiàn)在,即使這其中的
  • 華為Mate60系列模具曝光:采用碩大圓形后置相機(jī)模組+拼接配色方案

    據(jù)此前多方爆料,今年華為將開始恢復(fù)一年雙旗艦戰(zhàn)略,除上半年推出的P60系列外,往年下半年的Mate系列也將迎來更新,有望在9-10月份帶來全新的華為Mate60
  • 2299元起!iQOO Pad明晚首銷:性能最強(qiáng)天璣平板

    5月23日,iQOO如期舉行了新品發(fā)布會(huì),除了首發(fā)安卓最強(qiáng)旗艦處理器的iQOO Neo8系列新機(jī)外,還在發(fā)布會(huì)上推出了旗下首款平板電腦——iQOO Pad,其最大的賣點(diǎn)
Top 主站蜘蛛池模板: 白沙| 盖州市| 和平县| 隆安县| 梁河县| 石河子市| 玛沁县| 什邡市| 乐安县| 吐鲁番市| 宁陵县| 石屏县| 互助| 泉州市| 钟山县| 阿克陶县| 大宁县| 黎平县| 安平县| 运城市| 五河县| 连云港市| 江门市| 平江县| 罗江县| 谷城县| 汉寿县| 锡林郭勒盟| 邯郸县| 石河子市| 仲巴县| 南城县| 涿州市| 韩城市| 青州市| 新疆| 济阳县| 晋中市| 莱阳市| 贵定县| 青海省|