媒体查询中全局变量的设置值(重新访问)
Setting value of a global variable in media query (revisited)
根据回复,我写道:
$global-padding: 1em;
@media only screen and (max-width: 20em) {
$global-padding: 0.5em !global;
}
出于某种原因,内边距始终为 0.5em,而不仅仅是在屏幕最多 20em 宽时。我错过了什么?
据我所知,documentation 全局变量在编译时被覆盖,一旦嵌套规则被处理 - 而不是满足任何条件。这不是运行时功能。在编译期间,所有 SCSS 都编译为普通的旧 CSS。
A variable declaration flagged as !global will always assign to the global scope.
所以做这样的事情:
$variable: foo;
.content {
$variable: bar !global;
value: $variable;
}
.sidebar {
value: $variable;
}
会产生
.content {
value: bar;
}
.sidebar {
value: bar;
}
您尝试做的事情可以用 css 个自定义变量来完成:
:root {
--global-padding: 1em;
@media only screen and (max-width: 20em) {
--global-padding: 0.5em;
}
}
根据
$global-padding: 1em;
@media only screen and (max-width: 20em) {
$global-padding: 0.5em !global;
}
出于某种原因,内边距始终为 0.5em,而不仅仅是在屏幕最多 20em 宽时。我错过了什么?
据我所知,documentation 全局变量在编译时被覆盖,一旦嵌套规则被处理 - 而不是满足任何条件。这不是运行时功能。在编译期间,所有 SCSS 都编译为普通的旧 CSS。
A variable declaration flagged as !global will always assign to the global scope.
所以做这样的事情:
$variable: foo;
.content {
$variable: bar !global;
value: $variable;
}
.sidebar {
value: $variable;
}
会产生
.content {
value: bar;
}
.sidebar {
value: bar;
}
您尝试做的事情可以用 css 个自定义变量来完成:
:root {
--global-padding: 1em;
@media only screen and (max-width: 20em) {
--global-padding: 0.5em;
}
}