精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何使用CSS和JavaScript實施暗模式?

譯文
開發 前端
暗模式已成為一種流行的選項,您應該考慮在自己的網站上和Web應用程序中支持暗模式。

譯者 | 布加迪

審校 | 重樓

近年來,暗模式作為用戶界面選項備受追捧。它提供了更暗的背景和更亮的文,不僅可以減輕眼睛疲勞,還可以節省電池續航時間,尤其是在OLED屏幕上。

不妨了解如何結合使用CSSJavaScript為網站和Web應用程序添加暗模式選項。

了解暗模式

模式是網站的另一種配色方案,將傳統的淺色背景換成深色背景。它使您的頁面更悅目,尤其在光線較暗的情況下。由于用戶友好暗模式已經成為許多網站和應用程序的標準功能。

搭建項目

實施暗模式之前,確保您已搭建了一個項目準備好進行工作。您應該以一種結構化的方式組織HTMLCSSJavaScript文件。

HTML代碼

從頁面內容的以下標記開始入手。訪將能夠使用theme__switcher元素在暗模式亮模式之間切換。

<body>
   		     <nav class="navbar">
 			           <span class="logo">Company Logo</span>

                        <ul class="nav__lists">
                                <li>About</li>
                               <li>Blog</li>
                                <li>Contact</li>
                         </ul>

                         <div id="theme__switcher">
                                  <img id="theme__image" src="./toggle.svg" alt="" />
                          </div>
               </nav>

    <main>
Lorem ipsum dolor sit amet consectetur adipisicing elit.
    Odit deserunt sit neque in labore quis quisquam expedita minus
    perferendis.
    </main>

    <script src="./script.js"></script>
</body>

CSS代碼

添加以下CSS代碼來設置示例的樣式。這將充當默認的模式,稍后您可以為暗模式視圖添加新樣式。

@import url("https://fonts.googleapis.com/css2?family=Quicksand:wght@400;700&display=swap");
* {
         margin: 0;
         padding: 0;
         box-sizing: border-box;
}

html { font-size: 62.5%; }

body { font-family: "Quicksand", sans-serif; }

.navbar {
         display: flex;
         padding: 2rem;
         font-size: 1.6rem;
         align-items: center;
         color: rgb(176, 58, 46);
         background-color: #fdedec;
}

.navbar span { margin-right: auto; }

.logo { font-weight: 700; }

.nav__lists {
         display: flex;
         list-style: none;
         column-gap: 2rem;
        margin: 0 2rem;
}

#theme__switcher { cursor: pointer; }

main {
        width: 300px;
         margin: 5rem auto;
         font-size: 2rem;
         line-height: 2;
         padding: 1rem 2rem;
         border-radius: 10px;
         box-shadow: 2px 3.5px 5px rgba(242, 215, 213, 0.4);
}

現在,您的界面應該是這樣

使用CSS和JavaScript實施暗模式

為了實施暗模式,您將使用CSS定義外觀。然后,您將使用JavaScript來處理暗模式和亮模式之間的切換。

創建主題類

為每個主題使用一個類,這樣您就可以在兩種模式之間輕松切換。對于較完整的項目而言,您應該考慮暗模式如何影響設計的方面面。

.dark {
              background: #1f1f1f;
              color: #fff;
     }

     .light {
              background: #fff;
              color: #333;
     }

選擇交互元素

將以下JavaScript添加到script.js文件中。第一部分代碼只是選擇用于處理切換的元素。

// Get a reference to the theme switcher element and the document body

    const themeToggle = document.getElementById("theme__switcher");
    const bodyEl = document.body;

添加切換功能

下一步,使用下列JavaScript在亮模式(light)類與暗模式(dark)類之間切換。注意,改變切換開關以表明當前模式也是個好主意。該代碼使用CSS過濾器來實現這功能。

// Function to set the theme

     function setTheme(theme) {
             // If the theme is "dark," add the "dark" class, remove "light" class,
             // and adjust filter style
             bodyEl.classList.toggle("dark", theme === "dark");

            // If the theme is "light," add the "light" class, remove "dark" class,
             bodyEl.classList.toggle("light", theme !== "dark");

            // adjust filter of the toggle switch
            themeToggle.style.filter = theme === "dark" ? "invert(75%)" : "none";
    }


    // Function to toggle the theme between light and dark

    function toggleTheme() {
           setTheme(bodyEl.classList.contains("dark") ? "light" : "dark");
    }

    themeToggle.addEventListener("click", toggleTheme);

這使得您的頁面可以通過點擊切換容器來更改主題。

使用JavaScript增強暗模式

考慮以下兩個改進,可以使您的暗模式網站被訪客更易于使用。

檢測用戶偏好

需要在網站加載之前檢查用戶的系統主題,并調整您的網站進行匹配。下面介紹如何使用matchMedia函數來做到這一點

// Function to detect user's preferred theme

    function detectPreferredTheme() {
            // Check if the user prefers a dark color scheme using media queries
            const prefersDarkMode = window.matchMedia("(prefers-color-scheme: dark)").matches;
            setTheme(prefersDarkMode);
    }

    // Run the function to detect the user's preferred theme
    detectPreferredTheme();

現在,任何訪問您網站的用戶都會看到一個與他們設備當前主題相匹配的設計。

使用本地存儲持久化用戶首選項

為了進一步增強用戶體驗,可以使用本地存儲記住用戶選擇模式。這確保了他們在面對會話時不必重復選擇偏愛的模式。

function setTheme(theme) {
              bodyEl.classList.toggle("dark", theme === "dark");
              bodyEl.classList.toggle("light", theme !== "dark");

              themeToggle.style.filter = theme === "dark" ? "invert(75%)" : "none";

             // Setting the theme in local storage
              localStorage.setItem("theme", theme);
    }

    // Check if the theme is stored in local storage

    const storedTheme = localStorage.getItem("theme");

    if (storedTheme) {
             setTheme(storedTheme);
    }

    function detectPreferredTheme() {
              const prefersDarkMode = window.matchMedia("(prefers-color-scheme: dark)").matches;
    
              // Getting the value from local storage
              const storedTheme = localStorage.getItem("theme");

              setTheme(prefersDarkMode && storedTheme !== "light" ? "dark" : "light");
  }

擁抱以用戶為中心的設計

暗模式不僅限于外觀,而是把用戶的舒適和偏好放在第一位。如果遵循這種方法,您可以創建用戶友好的界面鼓勵訪客重復訪問。您在編程和設計時,優先考慮用戶便利,并為訪客提供更好的數字體驗。

原文標題:How to Implement Dark Mode Using CSS and JS,作者:DAVID JAJA

責任編輯:華軒 來源: 51CTO
相關推薦

2022-11-29 08:07:23

CSSJavaScript自定義

2010-11-09 17:35:11

2023-12-26 11:56:14

Go通道編程

2024-03-25 14:57:01

2024-12-12 08:55:25

CSS代碼模式

2020-05-25 09:30:00

UIWeb黑暗模式

2013-09-16 10:19:08

htmlcssJavaScript

2022-06-07 08:00:00

JavaScript編程語言TSPL

2025-06-23 08:17:54

2017-10-10 15:52:17

前端FlexboxCSS Grid

2021-04-08 18:39:57

JavaScriptExpress區塊鏈

2022-07-06 20:01:59

配色方案CSS

2009-11-05 10:33:06

CSS菜單

2025-01-09 11:15:47

2020-10-12 09:22:30

PythonCNN檢測

2014-05-26 16:41:56

實施項目項目

2023-12-21 17:05:46

機器學習MLOps人工智能

2019-02-26 13:00:11

JavaScriptURL前端

2021-08-11 22:50:53

JavaScript編程開發

2016-05-06 10:02:33

CSSJavaScript工具
點贊
收藏

51CTO技術棧公眾號

久久久久久久久久久99| 成人乱色短篇合集| 欧美狂猛xxxxx乱大交3| 欧美黄色a视频| 亚洲综合图片区| 免费观看成人在线| 99国产精品99| 国产精品日韩精品欧美精品| 日韩中文在线视频| 丝袜熟女一区二区三区 | 成人h动漫免费观看网站| 亚洲国产毛片aaaaa无费看| 欧美中日韩一区二区三区| 国产福利第一页| 天堂影院一区二区| 欧美激情小视频| 精品人伦一区二区| 精品国产午夜肉伦伦影院| 欧美午夜不卡视频| 国产日本在线播放| 免费在线观看av网站| jlzzjlzz亚洲日本少妇| 国产日韩在线观看av| 日韩欧美中文字幕一区二区| 亚洲最大av| 亚洲精品一区中文字幕乱码| 69久久精品无码一区二区 | 欧美午夜女人视频在线| 4444在线观看| 成年人视频免费在线观看| 北条麻妃国产九九精品视频| 国产一区二区色| 欧美一级淫片免费视频黄| 激情国产一区| 欧美精品一区三区| 久久久久久视频| 大色综合视频网站在线播放| 亚洲精品资源美女情侣酒店 | 9l视频自拍蝌蚪9l视频成人| 欧美日韩你懂得| 日本美女高潮视频| 波多视频一区| 欧美日韩中文字幕日韩欧美| 免费看毛片的网址| 亚洲资源一区| 亚洲女与黑人做爰| 亚洲欧洲免费无码| 国产在线视频网| 国产亚洲精品bt天堂精选| 久久精品国产第一区二区三区最新章节 | 实拍女处破www免费看| 久久久久观看| 亚洲第一网站男人都懂| 亚洲图片欧美另类| 国产精品x8x8一区二区| 欧美精品一区二| 免费黄色a级片| 国产调教精品| 日韩成人久久久| jlzzjizz在线播放观看| 思热99re视热频这里只精品| 亚洲韩国欧洲国产日产av| 中文字幕乱码在线| 亚洲另类春色校园小说| 亚洲视频综合网| 丁香激情五月少妇| 水蜜桃精品av一区二区| 两个人的视频www国产精品| 欧美丰满熟妇bbbbbb| 欧美一区高清| 久久久亚洲欧洲日产国码aⅴ| 日韩xxx高潮hd| 国产亚洲福利| 国产精品国产三级国产aⅴ9色| 国产精品国产精品国产| 精久久久久久久久久久| 99久久精品无码一区二区毛片| 亚洲第一页在线观看| av成人免费在线| 日韩视频专区| av网站免费在线观看| 亚洲综合一区二区| 久草资源站在线观看| a成人v在线| 日韩精品一区二区三区视频| av网页在线观看| 黑人操亚洲人| 欧美精品一区三区| 日韩不卡视频在线| 久久国产婷婷国产香蕉| 岛国视频一区免费观看| 色播色播色播色播色播在线| 国产精品麻豆网站| 久久99久久久久久| 素人一区二区三区| 日韩欧美卡一卡二| 一级片视频免费看| 91精品国产福利在线观看麻豆| 欧美激情中文字幕在线| 精品一区二区无码| 福利一区福利二区| 无遮挡亚洲一区| 日韩精品亚洲人成在线观看| 一本一道波多野结衣一区二区 | 白白色 亚洲乱淫| 天堂一区二区三区| xxxx另类黑人| 欧美精品在线视频| 少妇户外露出[11p]| 91精品亚洲| 日韩av黄色在线观看| www.97超碰| 中文成人av在线| 日韩在线综合网| 欧美另类中文字幕| 伊人伊成久久人综合网站| 日韩激情一区二区三区| 激情欧美一区二区三区在线观看| 久久av免费观看| 四虎av在线| 欧美美女bb生活片| 精品无人区无码乱码毛片国产| 欧美精品一线| 91久久精品视频| 成年网站在线| 色诱亚洲精品久久久久久| 在线观看成人动漫| 欧美婷婷在线| 91在线观看免费观看| 91亚洲欧美| 色哟哟日韩精品| 四虎成人免费视频| 午夜精品久久99蜜桃的功能介绍| 国产精品美女www爽爽爽视频| 午夜黄色小视频| 亚洲国产综合人成综合网站| 99九九99九九九99九他书对| 日韩综合在线| 国产美女精品视频| 69久久精品| 欧美丝袜自拍制服另类| 蜜桃久久精品成人无码av| 国产欧美高清| 久久精品国产一区二区三区不卡| 欧美xxxx黑人又粗又长| 欧美一级艳片视频免费观看| 国产又粗又硬又长又爽| 精品一区二区成人精品| 一区二区三区在线视频111| 国产福利91精品一区二区| 一级做a爰片久久毛片美女图片| 成年人免费高清视频| 久久亚洲私人国产精品va媚药| 精品国产一区三区| 三级精品视频| 国产成人精彩在线视频九色| 久久av少妇| 欧美日韩中文一区| 免费黄色国产视频| 韩国三级在线一区| ijzzijzzij亚洲大全| 亚洲精品午夜| 97在线看福利| 黄色网址在线播放| 欧美日韩中文精品| 久久久久亚洲AV成人| 大尺度一区二区| 日韩精品 欧美| 禁断一区二区三区在线| 国产精品自产拍在线观看中文| 日本电影在线观看网站| 91精品国产色综合久久ai换脸| 男女性高潮免费网站| 成人精品视频一区| 成人羞羞国产免费网站| 日韩黄色大片| 91精品黄色| 日韩精品极品| 久久精品成人一区二区三区| 囯产精品一品二区三区| 欧美日韩一区二区在线 | 日色在线视频| 欧美亚洲高清一区| 青青草原国产视频| 久久一区二区视频| 不用播放器的免费av| 亚洲精品1234| 亚洲乱码一区二区三区| 日韩影片在线观看| 日韩美女视频在线观看| а√天堂8资源在线官网| 日韩精品丝袜在线| 中文字幕人妻精品一区| 亚洲资源中文字幕| 国产激情av在线| 国产成人av电影在线| 草草草在线视频| 欧美xxx在线观看| 日本一区免费| 波多野结衣在线一区二区 | 国产欧美日韩综合精品一区二区| 久久艹这里只有精品| 亚洲综合欧美| 少妇久久久久久被弄到高潮| 国产亚洲欧美日韩在线观看一区二区| 91亚洲精华国产精华| 亚洲第一二三四区| 欧美国产亚洲精品久久久8v| av一本在线| 日韩av在线精品| 国产强伦人妻毛片| 欧洲人成人精品| 久热这里只有精品6| 亚洲黄色小说网站| 欧美xxxx精品| 国产校园另类小说区| 高清中文字幕mv的电影| 激情成人午夜视频| 天天操天天爱天天爽| 日韩视频在线一区二区三区| 激情视频小说图片| 日本精品黄色| 日韩精品另类天天更新| 欧美顶级毛片在线播放| av成人午夜| 色综合久久久| 国产精品永久免费在线| 日日夜夜天天综合| 青青久久av北条麻妃海外网| 136福利第一导航国产在线| 欧美精品亚州精品| 超碰在线caoporen| 久久亚洲精品一区二区| 日韩精品成人av| 中文字幕久久久| 国产在线视频福利| 亚洲欧美日韩中文在线| 手机福利在线| 精品欧美久久久| www.激情五月| 欧美成人乱码一区二区三区| 国产高清视频免费观看| 日韩午夜激情免费电影| 国产精品久久久久久久久久久久久久久久久久 | 午夜精品123| 国产精久久久久久| 亚洲成av人片www| 国产午夜福利片| 亚洲成人自拍网| 日韩av女优在线观看| 香蕉久久一区二区不卡无毒影院| 久久久久久久中文字幕| 亚洲综合视频网| 欧美日韩精品在线观看视频 | 国产精品视频在线看| www.日本高清视频| 中文字幕亚洲一区二区va在线| 国产一二三av| 亚洲精品中文在线影院| 九九热精品免费视频| 亚洲电影在线免费观看| 天天爽夜夜爽夜夜爽精品| 欧美午夜电影在线| 中文字幕制服诱惑| 7777精品伊人久久久大香线蕉的 | 欧美欧美黄在线二区| 日韩av电影免费在线观看| 日韩欧美午夜| 欧美 日韩 国产精品| 精品91在线| 国产精品少妇在线视频| 久久精品国产第一区二区三区| 超碰在线资源站| 丰满白嫩尤物一区二区| 香蕉网在线播放| 国产精品久久一卡二卡| 欧美极品aaaaabbbbb| 欧美视频一区二区三区…| 在线观看免费高清视频| 日韩欧美国产1| 男男激情在线| 久久久www成人免费精品张筱雨| 91最新在线视频| 日本国产高清不卡| 精品国产麻豆| 久久综合久久久| 国产精品99久久精品| r级无码视频在线观看| 日韩高清一区在线| 国产精久久久久| 国产欧美日韩视频在线观看| 久久久久99精品成人片试看| 欧美视频在线观看 亚洲欧| 一级黄色免费片| 亚洲精品国产综合区久久久久久久 | 成人午夜免费在线视频| 天堂蜜桃一区二区三区 | 亚洲视频在线观看免费视频| 精品久久久久久久久久久久久久久久久 | 国产又爽又黄又嫩又猛又粗| 亚洲国产日韩欧美在线99| 秋霞影院午夜丰满少妇在线视频| 91精品国产精品| av在线成人| 日本一区二区在线视频| 一区二区自拍| 中文字幕成人免费视频| 久久久美女毛片| 国产亚洲精品久久777777| 欧美日韩一区二区在线观看| 日韩永久免费视频| 久久天天躁狠狠躁夜夜av| 高清电影一区| 久久精品中文字幕一区二区三区 | 日韩免费av| 91传媒久久久| 成人免费毛片嘿嘿连载视频| 成人涩涩小片视频日本| 欧美性videosxxxxx| 三级无遮挡在线观看| 国内精品久久久久伊人av| 色综合视频一区二区三区44| 亚洲草草视频| 久久久久久网| 狠狠人妻久久久久久综合蜜桃| 一区二区三区欧美| av官网在线观看| 久久精品这里热有精品| 草莓视频成人appios| 欧洲亚洲一区二区| 亚洲欧美日韩国产一区二区| 中文字幕无码人妻少妇免费| 一区二区成人在线视频| 99草在线视频| 欧美成人中文字幕在线| 欧美黄页免费| 99热一区二区三区| 久久99最新地址| 午夜国产福利视频| 欧美情侣在线播放| 婷婷免费在线视频| 国产精品视频网| 婷婷综合亚洲| 一起草最新网址| 亚洲日本青草视频在线怡红院| 国产精品视频a| 久久久精品视频成人| 国产在线视频欧美一区| 黑人巨大国产9丨视频| 国产一区不卡精品| 久久久夜色精品| 欧美精品一区二区三区在线播放 | 激情五月婷婷小说| 91精品国产91热久久久做人人| 欧美日韩xx| 91系列在线观看| 黄色欧美成人| 日韩av手机在线播放| 欧美性jizz18性欧美| 国产资源在线看| 国产这里只有精品| 欧美日韩一区二区高清| 一起草在线视频| 91黄色免费观看| 日韩毛片久久久| 成人黄动漫网站免费| 99精品国产一区二区青青牛奶 | 欧美 日韩 人妻 高清 中文| 91精品国产乱码久久久久久蜜臀 | 国产精品三级一区二区| 成人av网站免费观看| 麻豆成人免费视频| 久久久91精品国产| 中文字幕日韩高清在线| 免费无码不卡视频在线观看| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲无码精品国产| 欧美国产极速在线| 国产欧美一区| 少妇献身老头系列| 色综合色综合色综合| 超碰在线免费公开| 欧美日韩日本网| 国产精品1区二区.| 无码人妻丰满熟妇区bbbbxxxx| 欧美成人免费网| 精品中文一区| 99久久综合网| 欧洲激情一区二区| 国产盗摄一区二区| 亚洲人123区| 国产精品毛片一区视频播| 97视频人免费观看| 亚洲91中文字幕无线码三区| 中文精品在线观看| 欧美成人精品高清在线播放| 五月激情久久| 少妇人妻在线视频| 亚洲免费观看视频| 福利片在线观看|