function* allRules() {
for (const ss of document.styleSheets) {
try {
for (const r of ss.rules) {
yield r;
}
} catch (_e) {}
}
}
for (const r of allRules()) {
if (r.conditionText === "(prefers-color-scheme: dark)") {
console.log(r);// can be break
}
}
filter: invert(1) hue-rotate(166deg);
做整体强制的颜色反转。img 元素会保持原色,但是会调暗图片颜色filter: brightness(0.5);
; 同时会给出一个特定的 cssName 来让开发者可以避免特定元素的颜色内容被反转filter: invert(1) hue-rotate(180deg);
supportColorSchemes?: [ColorScheme.Dark, ColorScheme.Light]
这个字段.document.styleSheets[].rules[].conditionText === '(prefers-color-scheme: dark)'
来判断项目是否有暗色模式代码的支持。缺点是 CSSStyleSheet 如果是跨域,那么 rules 是拿不到的,所以也不能完全判断出来;或者即便找到代码了,也可能误判,因为可能是死代码。dwebview.setPrefersColorScheme(WebColorScheme.Dark/Light)
)。