如果已经应用了特定样式,我有一个应该使用一个规则的类,如果已经应用了不同的样式,则有另一个规则。例如,假设某人包含我的样式表并且box-sizing
设置为border-box
,我该如何检查我的班级是否会应用此类规则?
// from another person's stylesheet
* {
box-sizing: border-box;
}
// rules created by my Sass mixin
.triangle {
// if `border-box` xyz, else abc
}
答案 0 :(得分:0)
我不认为这可以通过CSS或SASS实现。
请注意,这不是一个小问题:CSS的顺序决定了应用的css属性(您可以覆盖css属性)。你可以将CSS属性约束到你最疯狂的html路径,这是SASS编译器甚至不知道的,因为它独立于html代码。两者都会使您想要的功能难以实现。
实际上我也想不出该功能的用例。也许你可以通过在html元素上使用越来越多的语义css类来解决你的问题。作为阅读的起点,您可能希望阅读Scalable and Modular Architecture for CSS的第3章,第6章和第7章。
答案 1 :(得分:0)
你不能用CSS做到这一点,因为CSS是一种声明性语言。 Sass并没有改变CSS的运作方式;它只是让CSS更容易编写。
如果您不确定声明是否存在,请声明声明。
示例:
// from another person's stylesheet
* {
box-sizing: border-box;
}
// rules created by my Sass mixin
.triangle {
box-sizing: border-box;
border solid red 15px;
}
或者如果您想使用标准box-sizing
:
// rules created by my Sass mixin
.triangle {
box-sizing: content-box;
border solid blue 15px;
}
这是CSS级联的相当标准的使用。