【发布时间】:2017-04-03 14:40:05
【问题描述】:
我以前使用过 sass,并且对我认为可能或应该存在于 sass 中的功能有一个相关的问题。
是否有可能做这样的事情,以及如何做:
$base-color: #ffffff;
.pink {
$base-color: #ec008c;
}
.green {
$base-color: #a4d20e;
}
a, .pink a, .green a {
color: $base-color;
}
这意味着我可以为<body> 元素提供一个.pink 类,这将使该页面中的所有<a> 元素都变成“粉红色”。这虽然是一个过于简单的例子,但似乎是 SASS 应该做的事情。
这意味着上面的 scss 会编译成这样:
a {
color: #ffffff;
}
.pink a {
color: #ec008c;
}
.green a {
color: #ec008c;
}
正如我之前所说的过于简化,请考虑以下几点:
$base-color: #ffffff;
.pink {
$base-color: #ec008c;
}
.green {
$base-color: #a4d20e;
}
.pink, .green {
#header #nav li a {
color: $base-color;
}
}
应该给我这样的东西:
.pink #header #nav li a {
color: #ec008c;
}
.green #header #nav li a {
color: #a4d20e;
}
这似乎在 SCSS/SASS 中应该是可行的,并且会在编码时间和可维护性方面为大型项目带来很多好处。
【问题讨论】:
-
显然,在适当的情况下,编译后的 CSS 将比 SCSS 中所需的多行。