【发布时间】:2020-01-07 04:26:37
【问题描述】:
我最近发现了“prefers-color-scheme”媒体查询,并发现大多数常见浏览器的较新版本都与它兼容。
我想制作一些 SCSS 代码来生成全局变量以根据“prefers-color-scheme”导出值,以避免重复“主题类”。
$schemeColor: #eeeeee !default;
$reverseColor: #333333 !default;
$textColor: #000000 !default;
@media (prefers-color-scheme: dark){
$schemeColor: #333333 !global;
$reverseColor: #eeeeee !global;
$textColor: #FFFFFF !global;
}
@media (prefers-color-scheme: light) {
$schemeColor: #eeeeee !global;
$reverseColor: #333333 !global;
$textColor: #000000 !global;
}
当我在这段代码之后使用其中一个变量时,无论首选配色方案是什么,存储在变量中的值将是最后写入的值
(此处:@media (prefers-color-scheme: light) 中设置的值)。
我尝试在媒体查询中创建类。
当我这样做时,媒体查询中声明的类会根据颜色方案正确应用,但变量会继续存储它们设置的最后一个值。
【问题讨论】:
-
你试过
$schemeColor: #333333;而不是$schemeColor: #333333 !global;吗? -
@Morpheus,是的,但是当我这样做时,当媒体查询关闭时,变量会返回到 global-scope-value,然后它就不能用想要的值导出。
-
我认为这不可能。 SCSS 变量在您构建 CSS 时被替换。因此,SCSS 中的
color: $textColor在您生成的 CSS 文件中将是color: #000000。使用 CSS 变量是可能的,但这些变量还不是所有地方都支持
标签: css sass media-queries