国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

如何使用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-12-12 08:55:25

CSS代碼模式

2022-06-07 08:00:00

JavaScript編程語言TSPL

2013-09-16 10:19:08

htmlcssJavaScript

2024-03-25 14:57:01

2025-06-23 08:17:54

2020-05-25 09:30:00

UIWeb黑暗模式

2017-10-10 15:52:17

前端FlexboxCSS Grid

2021-04-08 18:39:57

JavaScriptExpress區塊鏈

2009-11-05 10:33:06

CSS菜單

2022-07-06 20:01:59

配色方案CSS

2025-01-09 11:15:47

2020-10-12 09:22:30

PythonCNN檢測

2014-05-26 16:41:56

實施項目項目

2021-08-11 22:50:53

JavaScript編程開發

2019-02-26 13:00:11

JavaScriptURL前端

2019-03-14 15:40:13

JavaScript CSS 工具

2011-05-25 09:34:30

HTML5cssjavascript
點贊
收藏

51CTO技術棧公眾號

亚洲国产岛国毛片在线| 日韩av快播网址| 色网站在线看| 亚洲精品欧美激情| 精品久久久久久中文字幕2017| 国产成人综合在线播放| 黄色www在线观看| 久久电影网站中文字幕| 日韩欧美亚洲v片| 青青草精品视频| 欧美一区视久久| 日韩 欧美一区二区三区| 日本欧美色综合网站免费| 久久免费黄色| 一区二区三区在线观看www| 喷水一区二区三区| 300部国产真实乱| 2020国产成人综合网| www.激情小说.com| 亚洲国产精品久久久男人的天堂 | 亚洲欧美中文日韩在线v日本| 伊人久久国产| 久久精品在线播放| 久操成人av| 国产精品一区二区a| 麻豆免费在线视频| 亚洲精品xxxx| 免费成人av电影| 久久这里都是精品| 国产女人精品视频| 最新国产一区二区| 日韩欧美中文在线| 国产精品333| 日韩不卡av| 国产丶欧美丶日本不卡视频| 欧美 日韩 国产 激情| 无吗不卡中文字幕| heyzo一区| 久久99亚洲热视| 一区二区三区毛片免费| 一区二区不卡在线| 国产视频一区在线观看| 你懂的视频在线免费| 亚洲精品国产精品乱码不99按摩| 五月亚洲婷婷| 99www免费人成精品| 国产iv一区二区三区| 啊啊啊好爽视频| 日韩欧美一区电影| 牛牛精品成人免费视频| 欧美不卡1区2区3区| 国产丝袜欧美中文另类| 91se在线| 欧美猛男性生活免费| 欧美黄在线观看| 国产主播在线看| 欧美久久一二三四区| 国产精品传媒| 一区二区高清视频| 天天操天天干天天综合网| 91精品国产经典在线观看| 91九色极品视频| 久久综合久久综合久久综合| 超碰在线国产| 97在线观看免费高清| 另类小说欧美激情| 婷婷亚洲一区二区三区| 日韩网站免费观看| 久久经典综合| 亚洲超碰在线| 欧美成人精品不卡视频在线观看| 黄色精品一区| 天天插天天狠天天透| 色悠悠久久88| 美女尤物久久精品| 亚州av电影免费在线观看| 国产一区二区日韩| 久久高清一区| 一级视频在线免费观看| 欧美成人免费一级人片100| 香蕉久久夜色精品国产| 色视频www在线播放| 欧美男插女视频| 国产在线视视频有精品| 日本韩国在线视频爽| 国产精品久久久久久久久影视| 91丨九色丨黑人外教| а√在线天堂官网| 精品国产乱码久久久久久蜜柚| 亚洲一区二区在线视频| av成人男女| 激情五月开心婷婷| 亚洲日本成人女熟在线观看| 先锋影音久久| 福利视频在线导航| 国产欧美日韩精品丝袜高跟鞋| 国产精品毛片久久久久久| 国产激情欧美| 国产成人三级视频| 精品成人a区在线观看| 夜夜嗨一区二区| 国产有码在线| 亚洲va欧美va在线观看| 亚洲一区二区三区在线播放| 蜜桃一区av| 岛国毛片在线播放| 久久99精品国产99久久6尤物| 成人精品gif动图一区| 欧美大电影免费观看| 伊人情人网综合| 亚洲国产成人精品电影| 免费久久99精品国产自在现线| av电影在线网| 成人羞羞视频免费| 在线影视一区二区三区| 国产精品videossex久久发布| 日av在线播放| 国产区二精品视| 538在线一区二区精品国产| 国产欧美日本| 里番在线播放| 在线视频一二三区| 在线观看中文字幕亚洲| 成人黄色综合网站| 国产亚洲字幕| 成人亚洲成人影院| 国产精品99导航| 亚洲成人午夜影院| 香蕉国产精品| 精品麻豆一区二区三区| 日韩aⅴ视频一区二区三区| 亚洲国产精品中文| 国产不卡在线一区| 97久久亚洲| 亚洲精品666| 国产欧美一区二区在线播放| 日韩欧美成人激情| 国产ts人妖一区二区| 视频一区日韩精品| 高清视频在线www色| 国产精品久久久久久免费观看| 日韩欧美一二三| 成人97人人超碰人人99| 色婷婷av一区二区三区丝袜美腿| 三级av在线| 国产精品h视频| 欧美国产日韩一区| 欧美性xxxx| 狠狠色丁香久久婷婷综| 一区二区三区在线免费看| 九色porny在线观看| 精品久久久久久亚洲| 亚洲国产精品va在线观看黑人| 99九九99九九九视频精品| 国产成人精品免费视| 日本中文在线观看| 欧美激情一区二区三区全黄| 国产一区欧美日韩| 亚洲国产精品久久久天堂| 欧美亚洲日本精品| 国产成人免费视频精品含羞草妖精| 香蕉伊大人中文在线观看| 无码精品a∨在线观看中文| 国产成人综合亚洲| 欧美日韩日日夜夜| 99亚偷拍自图区亚洲| 欧美老女人另类| 亚洲欧美成aⅴ人在线观看| 成人短视频下载| 久久精品人人| 综合av第一页| 精品欧美午夜寂寞影院| 免费在线黄色网址| 欧美精品久久96人妻无码| 欧美激情精品久久久久久变态| 色综合天天在线| 东方欧美亚洲色图在线| jiujiure精品视频播放| av电影免费在线看| 最近久乱中文字幕| 女女同性女同一区二区三区91| 久久视频免费观看| 欧美色男人天堂| 国产亚洲欧美在线| 亚洲欧美成人| 91精品国产乱码久久久竹菊| aaa在线观看| 日本美女高潮视频| 麻豆精品传媒视频| 26uuu国产精品视频| 亚洲第一男人av| 亚洲h精品动漫在线观看| 国产乱淫av一区二区三区| av一区二区高清| 香蕉成人影院| 欧美午夜电影一区二区三区| av首页在线| 成人小视频在线观看免费| 成人免费观看网站| 97国产suv精品一区二区62|