首页 > 解决方案 > 匹配媒体以检测首选配色方案不适用于 Safari

问题描述

我正在尝试根据用户的系统设置实现暗模式。为此,我使用 @media 查询prefers-color-scheme: dark。这可行,但我还需要在 JavaScript 中进行一些检查。

detectColorScheme() {
   if (!window.matchMedia) {
     return false;
   } else if (window.matchMedia('(prefers-color-scheme: dark').matches) {
     this.isDarkMode = true;
   }
}

此代码适用于 Chrome,但不适用于 Safari。即使激活了系统暗模式,它仍然返回 false(仅适用于 Safari)。

标签: javascripthtmlcsstypescript

解决方案


推荐阅读