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

目錄
基本結(jié)構(gòu):HTML 樣式分離
切換邏輯:用JavaScript 控制類名
記住用戶選擇:用localStorage 存狀態(tài)
可選優(yōu)化:自動檢測系統(tǒng)偏好
首頁 web前端 css教學 如何使用CSS創(chuàng)建暗模式切換

如何使用CSS創(chuàng)建暗模式切換

Jul 19, 2025 am 03:20 AM
css

實現(xiàn)網(wǎng)頁暗模式切換的關鍵在於HTML結(jié)構(gòu)、CSS樣式分離和JavaScript控制類名及持久化存儲。首先,添加按鈕元素:;其次,在CSS中定義body默認樣式和.dark-mode類樣式;接著,用JavaScript監(jiān)聽按鈕點擊事件並切換類名:document.body.classList.toggle('dark-mode');然後,使用localStorage保存用戶偏好,頁面加載時讀取狀態(tài)並恢復對應模式;最後,可選自動檢測系統(tǒng)偏好並優(yōu)先用戶存儲設置。通過這些步驟即可實現(xiàn)完整的暗模式切換功能。

How to create a dark mode toggle with CSS

暗模式切換功能現(xiàn)在幾乎成了網(wǎng)頁標配,實現(xiàn)起來其實不復雜。用CSS 搭配一點HTML 和JavaScript 就能搞定,關鍵是理解怎麼控制主題切換和持久化用戶偏好。

How to create a dark mode toggle with CSS

基本結(jié)構(gòu):HTML 樣式分離

先從結(jié)構(gòu)入手,核心是給頁面加一個開關按鈕,並為“亮”“暗”兩種狀態(tài)定義不同的樣式。 HTML 裡放個按鈕:

 <button id="darkModeToggle">切換暗色模式</button>

然後在CSS 中使用類名來區(qū)分明暗樣式,比如給body添加.dark-mode類時改變背景和文字顏色:

How to create a dark mode toggle with CSS
 body {
  background-color: #fff;
  color: #333;
}

body.dark-mode {
  background-color: #121212;
  color: #e6e6e6;
}

這樣只要通過JS 切換類名,就能實現(xiàn)基本的切換效果。


切換邏輯:用JavaScript 控制類名

接下來就是讓按鈕真正動起來。 JavaScript 的任務很簡單:監(jiān)聽點擊事件,切換body 上的類名。

How to create a dark mode toggle with CSS
 document.getElementById(&#39;darkModeToggle&#39;).addEventListener(&#39;click&#39;, function () {
  document.body.classList.toggle(&#39;dark-mode&#39;);
});

這段代碼的意思是每次點按鈕,就在body 上加或去掉dark-mode這個類。結(jié)合前面寫的CSS,就實現(xiàn)了視覺上的切換。


記住用戶選擇:用localStorage 存狀態(tài)

用戶點了暗模式,刷新又變回去了?這就需要把用戶的偏好存起來??梢杂脼g覽器提供的localStorage來記住當前狀態(tài)。

修改一下JS 部分:

 const toggleButton = document.getElementById(&#39;darkModeToggle&#39;);

// 頁面加載時檢查存儲的狀態(tài)if (localStorage.getItem(&#39;darkMode&#39;) === &#39;enabled&#39;) {
  document.body.classList.add(&#39;dark-mode&#39;);
}

toggleButton.addEventListener(&#39;click&#39;, function () {
  document.body.classList.toggle(&#39;dark-mode&#39;);

  // 如果當前有dark-mode 類,就保存狀態(tài)if (document.body.classList.contains(&#39;dark-mode&#39;)) {
    localStorage.setItem(&#39;darkMode&#39;, &#39;enabled&#39;);
  } else {
    localStorage.setItem(&#39;darkMode&#39;, &#39;disabled&#39;);
  }
});

這樣一來,即使頁面刷新,也能根據(jù)本地存儲恢復用戶的偏好設置。


可選優(yōu)化:自動檢測系統(tǒng)偏好

如果你希望默認跟隨系統(tǒng)設置,可以加一段判斷:

 if (
  window.matchMedia &&
  window.matchMedia(&#39;(prefers-color-scheme: dark)&#39;).matches
) {
  document.body.classList.add(&#39;dark-mode&#39;);
}

不過要注意,如果用戶已經(jīng)手動設置了偏好(存在localStorage),就應該優(yōu)先使用用戶的選擇,而不是系統(tǒng)默認。


基本上就這些。整個流程清晰、實現(xiàn)簡單,但細節(jié)上要處理好狀態(tài)同步和存儲機制。你可以根據(jù)自己項目的需求進一步封裝或者用框架實現(xiàn)。

以上是如何使用CSS創(chuàng)建暗模式切換的詳細內(nèi)容。更多資訊請關注PHP中文網(wǎng)其他相關文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔相應的法律責任。如發(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ū)動的應用程序,用於創(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)

熱門話題

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

在PHP中搭建社交分享功能的核心方法是通過動態(tài)生成符合各平臺要求的分享鏈接。 1.首先獲取當前頁面或指定的URL及文章信息;2.使用urlencode對參數(shù)進行編碼;3.根據(jù)各平臺協(xié)議拼接生成分享鏈接;4.在前端展示鏈接供用戶點擊分享;5.動態(tài)生成頁面OG標籤優(yōu)化分享內(nèi)容展示;6.務必對用戶輸入進行轉(zhuǎn)義以防止XSS攻擊。該方法無需複雜認證,維護成本低,適用於大多數(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ì)量的影響力激勵機制及合規(guī)匿名數(shù)據(jù)洞察變現(xiàn);2.審核策略應採用前置審核 動態(tài)關鍵詞過濾 用戶舉報機制組合,輔以評論質(zhì)量評分實現(xiàn)內(nèi)容分級曝光;3.防刷需構(gòu)建多層防禦:reCAPTCHAv3無感驗證、Honeypot蜜罐字段識別機器人、IP與時間戳頻率限制阻止灌水、內(nèi)容模式識別標記可疑評論,持續(xù)迭代應對攻擊。

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

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

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

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

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

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

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

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

如何將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

如何更改CSS中的文本顏色? 如何更改CSS中的文本顏色? Jul 27, 2025 am 04:25 AM

要改變CSS中文本顏色,需使用color屬性;1.使用color屬性可設置文本前景色,支持顏色名稱(如red)、十六進制碼(如#ff0000)、RGB值(如rgb(255,0,0))、HSL值(如hsl(0,100%,50%))以及帶透明度的RGBA或HSLA(如rgba(255,0,0,0.5));2.可將顏色應用於包含文本的任何元素,如h1至h6標題、段落p、鏈接a(需注意a:link、a:visited、a:hover、a:active不同狀態(tài)的顏色設置)、按鈕、div、span等;3.最

See all articles