我可以使用基类'class'覆盖子元素吗?

时间:2014-09-23 19:30:20

标签: css sass

使用SCSS,我想设置h3类型的所有.some-base元素的样式,但似乎我需要在派生样式中定义覆盖。所以

不能工作:

.some-base {
    h3 {
       margin-right: 3px;
    }
}

.some-derived {
    @extend .some-base;
}

工作:

.some-base {

}

.some-derived {
    @extend .some-base;
    h3 {
       margin-right: 3px;
    }
}

任何方式让第一种方法起作用,所以我不需要在每次覆盖中重新定义它?

1 个答案:

答案 0 :(得分:0)

.some-base没有应用任何样式。如果您在示例1中将color: red放在.some-base上,您会看到它由.some-derived继承(注意:它需要进入.some-base,而不是.some-base h3 )。

虽然扩展嵌套类是不可能的,所以你不能扩展.some-base并在其中定义h3样式(100%确定这个样式),也不能扩展.some-base h3 1}} 如果它被定义为嵌套类。如果您将.some-base h3 {}定义为自己的规则而不是.some-base { h3 {} },那么您可以将其扩展(95%确定在此规则上)。