<blockquote id="5vrin"><option id="5vrin"></option></blockquote><tt id="5vrin"></tt>
<\/code>元素上切換.dark-mode<\/code>類,并將用戶的偏好保存在localStorage<\/code>中。 <\/p>\"使用CSS和JavaScript實施暗模式\"
 const toggleButton = document.getElementById('Darkmodetoggle');\n\n\/\/檢查頁面上的用戶偏好\nif(localstorage.getItem('darkmode')==='enabled'){\n  document.body.body.classlist.add('dark-mode');\n}\n\n\/\/切換黑暗模式\n函數(shù)toggledarkmode(){\n  document.body.body.classlist.toggle('dark-mode');\n\n  \/\/保存偏好\n  if(document.body.classlist.contains('dark-mode')){\n    localstorage.setItem('darkmode','enabled');\n  } 別的 {\n    localstorage.setItem('darkmode','disabled');\n  }\n}\n\ntoggleButton.AddeventListener('click',toggledarkmode);<\/pre>

這樣可以確保所選主題在頁面重新加載中持續(xù)存在。<\/p>


3。(可選)尊重OS級別的偏好<\/h3>

如果用戶使用prefers-color-scheme<\/code>媒體查詢,則可以默認(rèn)為Dark Mode。<\/p>

 \/ *默認(rèn)情況下,如果OS偏好為Dark *\/\n@Media(prefers-color-scheme:dark){\n  身體:不(.light-mode){\n    背景色:#1A1A1A;\n    顏色:#f0f0f0;\n  }\n}<\/pre>

更新JavaScript以尊重OS設(shè)置,僅當(dāng)用戶沒有做出選擇時<\/strong>:<\/p>

 \/\/在頁面上加載\nconst userPreference = localstorage.getItem('darkmode');\n\n如果(userpReference ==='enabled'){\n  document.body.body.classlist.add('dark-mode');\n} else if(userPreference ==='disabled'){\n  document.body.body.classlist.remove('dark-mode');\n} 別的 {\n  \/\/沒有保存的偏好:使用OS設(shè)置\n  if(window.matchmedia('(prefers-color-scheme:dark)')。匹配){\n    document.body.body.classlist.add('dark-mode');\n    localstorage.setItem('darkmode','enabled');\n  }\n}<\/pre>

這給出了明智的默認(rèn)值,同時仍然讓用戶覆蓋它。<\/p>


4。用清晰的標(biāo)簽提高UX<\/h3>

而不是通用的“切換”按鈕,而是顯示會發(fā)生什么動作:<\/p>

函數(shù)updatebuttonlabel(){\n  const isdarkMode = document.body.classlist.contains('dark-mode');\n  toggleButton.textContent = isdarkmode? “切換到光模式”:“切換到黑暗模式”;\n}\n\n\/\/切換后致電\ntogglebutton.addeventlistener('click',()=> {\n  toggledarkmode();\n  UpdateButtonLabel();\n});\n\n\/\/也打電話給負(fù)載\nUpdateButtonLabel();<\/pre>

這個小細節(jié)使界面更加直觀。<\/p>\n


\n

實施暗模式并不一定要復(fù)雜。有了CSS變量,一些JavaScript和對用戶偏好的關(guān)注,您可以提供拋光,可訪問的體驗?;旧?,這是關(guān)于一致性,持久性和尊重用戶選擇的。<\/p>"}

亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
1。將CSS變量用于主題管理
2。與JavaScript添加一個切換按鈕
3。(可選)尊重OS級別的偏好
4。用清晰的標(biāo)簽提高UX
首頁 web前端 前端問答 使用CSS和JavaScript實施暗模式

使用CSS和JavaScript實施暗模式

Jul 28, 2025 am 03:46 AM
css

使用CSS變量來定義輕型和深色主題顏色,并使用.dark-Mode類應(yīng)用它們,以便于切換。 2。在HTML中添加一個切換按鈕,并使用JavaScript通過添加或刪除身體上的.dark-Mode類,同時保存用戶在LocalStorage中的偏好,以切換主題。 3??蛇x,使用首選色調(diào)尊重OS級的暗模式偏好,僅當(dāng)用戶未手動設(shè)置首選項時,才能應(yīng)用它。 4。通過動態(tài)更新切換按鈕標(biāo)簽來提高可用性,以指示下一個操作,例如“切換到燈模式”或“切換到“暗模式”),以獲得更清晰的用戶體驗。

使用CSS和JavaScript實施暗模式

在您的網(wǎng)站上添加黑暗模式可改善用戶體驗,尤其是在弱光環(huán)境中。這不僅與美學(xué)有關(guān),還可以減少眼睛疲勞并節(jié)省OLED屏幕上的電池。使用CSS和JavaScript實施它很簡單,并使用戶控制其首選主題。這是有效做到的方法。

使用CSS和JavaScript實施暗模式

1。將CSS變量用于主題管理

管理光和黑暗主題的最簡單方法是定義CSS中的顏色變量。使用:root for for Light模式,并在.dark-mode類中覆蓋它。

 / *默認(rèn)(燈模式) */
:根 {
  -bg-color:#ffffff;
  -Text-Color:#333333;
   - 彩色:#007BFF;
}

/ *黑暗模式 */
.dark-mode {
  -bg-color:#1a1a1a;
  -Text-Color:#f0f0f0;
   - 彩色:#00a2ff;
}

/ *將變量應(yīng)用于身體和元素 */
身體 {
  背景色:var(-bg-color);
  顏色:var( - 文本色);
  過渡:背景色0.3s易于寬敞,顏色0.3s易于;
}

按鈕,.toggle {
  背景色:var( - 焦色);
  邊界:無;
  顏色:白色;
  填充:10px 15px;
  光標(biāo):指針;
}

transition屬性確保模式之間的平滑開關(guān)。

使用CSS和JavaScript實施暗模式

2。與JavaScript添加一個切換按鈕

在您的HTML中創(chuàng)建一個按鈕以使用戶切換主題:

 <button id =“ darkmodetoggle”>切換黑暗模式</button>

現(xiàn)在,使用JavaScript在<body>元素上切換.dark-mode類,并將用戶的偏好保存在localStorage中。

使用CSS和JavaScript實施暗模式
 const toggleButton = document.getElementById(&#39;Darkmodetoggle&#39;);

//檢查頁面上的用戶偏好
if(localstorage.getItem(&#39;darkmode&#39;)===&#39;enabled&#39;){
  document.body.body.classlist.add(&#39;dark-mode&#39;);
}

//切換黑暗模式
函數(shù)toggledarkmode(){
  document.body.body.classlist.toggle(&#39;dark-mode&#39;);

  //保存偏好
  if(document.body.classlist.contains(&#39;dark-mode&#39;)){
    localstorage.setItem(&#39;darkmode&#39;,&#39;enabled&#39;);
  } 別的 {
    localstorage.setItem(&#39;darkmode&#39;,&#39;disabled&#39;);
  }
}

toggleButton.AddeventListener(&#39;click&#39;,toggledarkmode);

這樣可以確保所選主題在頁面重新加載中持續(xù)存在。


3。(可選)尊重OS級別的偏好

如果用戶使用prefers-color-scheme媒體查詢,則可以默認(rèn)為Dark Mode。

 / *默認(rèn)情況下,如果OS偏好為Dark */
@Media(prefers-color-scheme:dark){
  身體:不(.light-mode){
    背景色:#1A1A1A;
    顏色:#f0f0f0;
  }
}

更新JavaScript以尊重OS設(shè)置,僅當(dāng)用戶沒有做出選擇時

 //在頁面上加載
const userPreference = localstorage.getItem(&#39;darkmode&#39;);

如果(userpReference ===&#39;enabled&#39;){
  document.body.body.classlist.add(&#39;dark-mode&#39;);
} else if(userPreference ===&#39;disabled&#39;){
  document.body.body.classlist.remove(&#39;dark-mode&#39;);
} 別的 {
  //沒有保存的偏好:使用OS設(shè)置
  if(window.matchmedia(&#39;(prefers-color-scheme:dark)&#39;)。匹配){
    document.body.body.classlist.add(&#39;dark-mode&#39;);
    localstorage.setItem(&#39;darkmode&#39;,&#39;enabled&#39;);
  }
}

這給出了明智的默認(rèn)值,同時仍然讓用戶覆蓋它。


4。用清晰的標(biāo)簽提高UX

而不是通用的“切換”按鈕,而是顯示會發(fā)生什么動作:

函數(shù)updatebuttonlabel(){
  const isdarkMode = document.body.classlist.contains(&#39;dark-mode&#39;);
  toggleButton.textContent = isdarkmode? “切換到光模式”:“切換到黑暗模式”;
}

//切換后致電
togglebutton.addeventlistener(&#39;click&#39;,()=> {
  toggledarkmode();
  UpdateButtonLabel();
});

//也打電話給負(fù)載
UpdateButtonLabel();

這個小細節(jié)使界面更加直觀。


實施暗模式并不一定要復(fù)雜。有了CSS變量,一些JavaScript和對用戶偏好的關(guān)注,您可以提供拋光,可訪問的體驗?;旧希@是關(guān)于一致性,持久性和尊重用戶選擇的。

以上是使用CSS和JavaScript實施暗模式的詳細內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

如何用PHP搭建社交分享功能 PHP分享接口集成實戰(zhàn) 如何用PHP搭建社交分享功能 PHP分享接口集成實戰(zhàn) Jul 25, 2025 pm 08:51 PM

在PHP中搭建社交分享功能的核心方法是通過動態(tài)生成符合各平臺要求的分享鏈接。1.首先獲取當(dāng)前頁面或指定的URL及文章信息;2.使用urlencode對參數(shù)進行編碼;3.根據(jù)各平臺協(xié)議拼接生成分享鏈接;4.在前端展示鏈接供用戶點擊分享;5.動態(tài)生成頁面OG標(biāo)簽優(yōu)化分享內(nèi)容展示;6.務(wù)必對用戶輸入進行轉(zhuǎn)義以防止XSS攻擊。該方法無需復(fù)雜認(rèn)證,維護成本低,適用于大多數(shù)內(nèi)容分享需求。

PHP打造博客評論系統(tǒng)變現(xiàn) PHP評論審核與防刷策略 PHP打造博客評論系統(tǒng)變現(xiàn) PHP評論審核與防刷策略 Jul 25, 2025 pm 08:27 PM

1.評論系統(tǒng)商業(yè)價值最大化需結(jié)合原生廣告精準(zhǔn)投放、用戶付費增值服務(wù)(如上傳圖片、評論置頂)、基于評論質(zhì)量的影響力激勵機制及合規(guī)匿名數(shù)據(jù)洞察變現(xiàn);2.審核策略應(yīng)采用前置審核 動態(tài)關(guān)鍵詞過濾 用戶舉報機制組合,輔以評論質(zhì)量評分實現(xiàn)內(nèi)容分級曝光;3.防刷需構(gòu)建多層防御:reCAPTCHAv3無感驗證、Honeypot蜜罐字段識別機器人、IP與時間戳頻率限制阻止灌水、內(nèi)容模式識別標(biāo)記可疑評論,持續(xù)迭代應(yīng)對攻擊。

如何用Mac搭建PHP Nginx環(huán)境 MacOS配置Nginx與PHP服務(wù)組合 如何用Mac搭建PHP Nginx環(huán)境 MacOS配置Nginx與PHP服務(wù)組合 Jul 25, 2025 pm 08:24 PM

Homebrew在Mac環(huán)境搭建中的核心作用是簡化軟件安裝與管理。1.Homebrew自動處理依賴關(guān)系,將復(fù)雜的編譯安裝流程封裝為簡單命令;2.提供統(tǒng)一的軟件包生態(tài),確保軟件安裝位置與配置標(biāo)準(zhǔn)化;3.集成服務(wù)管理功能,通過brewservices可便捷啟動、停止服務(wù);4.便于軟件升級與維護,提升系統(tǒng)安全性與功能性。

什么是常見的CSS瀏覽器不一致? 什么是常見的CSS瀏覽器不一致? Jul 26, 2025 am 07:04 AM

不同瀏覽器對CSS解析存在差異,導(dǎo)致顯示效果不一致,主要包括默認(rèn)樣式差異、盒模型計算方式、Flexbox和Grid布局支持程度及某些CSS屬性行為不一致。1.默認(rèn)樣式處理不一致,解決方法是使用CSSReset或Normalize.css統(tǒng)一初始樣式;2.舊版IE的盒模型計算方式不同,建議統(tǒng)一使用box-sizing:border-box;3.Flexbox和Grid在邊緣情況或舊版本中表現(xiàn)有差異,應(yīng)多測試并使用Autoprefixer;4.某些CSS屬性行為不一致,需查閱CanIuse并提供降級

如何將SCSS編譯到CSS? 如何將SCSS編譯到CSS? Jul 27, 2025 am 01:58 AM

installdartsassvianpmafterinstallingnode.jsusingnpminstall-gsass.2.compilescsstocssssusingthecommandSassInput.scsssoutput.css.3。 useass - watchinput.scssoutput.csstoauto-compileonsave.4.watchentirefolderswithsass-watchscss:css.5.usepartialswith_prefixfo

什么是口音色的物業(yè)? 什么是口音色的物業(yè)? Jul 26, 2025 am 09:25 AM

accent-color是CSS中用于自定義復(fù)選框、單選按鈕和滑塊等表單元素高亮顏色的屬性;1.它直接改變表單控件選中狀態(tài)的默認(rèn)顏色,如將復(fù)選框的藍色勾選標(biāo)記改為紅色;2.支持的元素包括type="checkbox"、type="radio"和type="range"的輸入框;3.使用accent-color可避免復(fù)雜的自定義樣式和額外DOM結(jié)構(gòu),保持原生可訪問性;4.現(xiàn)代瀏覽器普遍支持,舊瀏覽器需降級處理;5.設(shè)置accent-col

描述'垂直align”屬性及其典型用例 描述'垂直align”屬性及其典型用例 Jul 26, 2025 am 07:35 AM

1.ItAdjustSelementsLikeImagesRikeImagesOrformInputswithIntExtLineSustLineSlineSlineSlineSlikeLikeLikeBaseline,中間,Super,Super,Super和Sub.2.intablebecells,ItControlScontentalStalteNtalmscontentalMedwithThtop,Middle,Middle,Midder,Midder,經(jīng)常

CSS過渡教程 CSS過渡教程 Jul 26, 2025 am 09:30 AM

csStransitionSenablesMoothPropertyChangesWithMinimalCode,ifealforHoverForpectSandInteractiveFeedback.1.usethesyntaxtransition:propertyDurationTimingTiming-functionDelayDelay; TodefineTrysitions; TodefinEtrys;

See all articles