一、背景4 W" Z* ?8 V4 d7 C* D# b
随着 iOS 13 的发布,深色模式(Dark Mode)越来越多地出现在大众的视野中,支持深色模式已经成为现代移动应用和网站的一个潮流,前段时间更是因为微信的适配再度引起热议。深色模式不仅可以大幅减少电量的消耗,减弱强光对比,还能 提供更好的可视性和沉浸感。! p$ c m' ]; H; d/ `( _/ x4 T$ C m
如何切换深色模式: k. m. Y3 U; p! ? t. W
iOS:“设置”--“显示与亮度”--“外观”,选择“深色”
Android:“系统设置”--“显示”--“深色模式”。 0 ~- u! j/ L6 j1 Y
二、问题 V6 S0 A9 `7 y6 m5 \+ o 如果系统设置了深色模式,H5页面不做相应的处理,会出现背景色冲突、深色文字显示异常,深色图标显示异常等一些显示上的问题。 * a7 A. k: R) ~ F# X- l2 V 所以,需要对深色模式进行一些适配。 ' } y2 ~2 ~: k/ f, T三、H5项目适配深色模式方案 6 U: _: z) S) @1.声明 color-scheme 1 T0 U9 a9 E1 s( }) `1 o, S color-scheme有两种方式。% w/ r; R$ ?* G 1.1meta ! z8 r# W4 }& [, F 在head中声明<meta name="color-scheme" content="light dark">,声明当前页面支持 light 和 dark 两种模式,系统切换到深色模式时,浏览器默认样式也会切换到深色; 3 _8 n7 V; Z+ N! {$ M3 L1.2CSS( `" [/ c: n) p7 I" V2 L5 x8 n
下面的 css 同样可以实现上面 meta 声明的效果 2 L2 S: l/ B( K# v