声明 color-scheme
-
meta
在head
中声明<meta name="color-scheme" content="light dark">
,声明当前页面支持 light 和 dark 两种模式,系统切换到深色模式时,浏览器默认样式也会切换到深色;
-
css
下面的 css 同样可以实现上面 meta 声明的效果
:root { color-scheme: light dark; }
CSS媒体查询
:root { color-scheme: light dark; background: white; color: black; } @media (prefers-color-scheme: dark) { :root { background: black; color: white; } }
js监听当前模式&模式变化
const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)') function darkModeHandler() { if (mediaQuery.matches) { console.log('现在是深色模式') } else { console.log('现在是浅色模式') } } // 判断当前模式 darkModeHandler() // 监听模式变化 mediaQuery.addListener(darkModeHandler)