使用覆盖进行SASS继承

时间:2018-06-15 21:14:26

标签: css sass

使用@extend进行SASS继承非常有用。这样的事情非常简单:



.my-base-class {
    font-size: 14px;    
}

.my-extended-class {
    @extend .my-base-class;
    
    color: red;
}




然而,我希望能够重新定义.my-base-class中定义的.my-extended-class中的规则。像这样:



.my-base-class {
    font-size: 14px;
}

.my-extended-class {
    @extend .my-base-class;
    
    font-size: 18px;
}




在这种情况下,font-size重新定义为.my-extended-class中的18px。

我确实意识到我可以在.my-extended-class中添加!important到font-size。但是,出于两个主要原因,我不想这样做。 #1我被教导要避免!尽可能重要。 #2我实际上想要覆盖相当复杂的嵌套属性。像这样:



.my-base-class {
    font-size: 14px;
    
    .child-of-my-base-class {
        margin: 10px;
        padding: 5px;
        background-color: green;
    }
}

.my-extended-class {
    @extend .my-base-class;
    font-size: 18px;
    
    .child-of-my-base-class {
        background-color: purple;    
    }
}




这样的事情可能吗?

感谢。

亚伦

1 个答案:

答案 0 :(得分:0)

感谢@BlueCaret的jsfiddle。

看起来SASS确实开箱即用;它只是我在Visual Studio中的Web编译器被破坏了。

所以,问题回答了。感谢。

亚伦