【发布时间】:2012-02-15 12:59:23
【问题描述】:
我正在使用 SASS,发现不便。这是我正在尝试做的一个例子:
.message-error {
background-color: red;
p& {
background-color: yellow
}
}
预期的 CSS:
.message-error {
background-color: red;
}
p.message-error {
background-color: yellow ;
}
想法:所有带有 .message-error 的元素都是红色的,除非它是 p.message-error。这不是现实生活中的情况,只是为了展示一个例子。
SASS 无法编译这个,我什至尝试了字符串连接。是否有一些插件可以做到完全相同?
注意: 我知道我可以放另一个 CSS 定义,例如:
p.message-error{....}
...under,但我想避免这种情况,并为所有 .message-error 定义使用一个位置。
谢谢。
【问题讨论】:
-
就像你说的:这不是现实生活中的情况。无论您使用的是 CSS 还是 Sass,最好做您知道该做的事情。没有理由按照你的提议去做。如果有,请澄清。
-
它并没有过多地脱离现实生活:如果消息错误是
或
- ,我想要的是具有不同的布局。示例:对于
元素,框的左侧会有一些背景 URL 图像(检查 Constellation 管理模板)。但如果是
- ,则没有精灵。
-
不了解 sass。但是在正常的 CSS 中,如果你想要“所有带有 .message-error 的元素都是红色的,如果它是 p.message-error”,我假设 p.message-error 也不需要是黄色的,而不是我们可以使用否定伪类选择器“.message-error:not(p.message-error)” - 不确定。
-
你有解决办法吗?
-
@cimmanon 的答案应该被选为解决方案,因为现在支持此功能。