Sass 如何在保留原始输出的同时重新定义现有的mixin?
让我们假设我有以下混音:Sass 如何在保留原始输出的同时重新定义现有的mixin?,sass,mixins,Sass,Mixins,让我们假设我有以下混音: @mixin foo { color: red; } 这个mixin是在库中导入的,所以我不想接触源代码。不过,我确实希望扩展mixin的功能,并向其中添加我自己的样式 因此,我需要一种方法来创建具有相同名称的新mixin,同时保留原始输出,但允许我添加新输出,例如: @mixin foo { color: blue; } @mixin foo { @include foo; // this is the original font-
@mixin foo {
color: red;
}
这个mixin是在库中导入的,所以我不想接触源代码。不过,我确实希望扩展mixin的功能,并向其中添加我自己的样式
因此,我需要一种方法来创建具有相同名称的新mixin,同时保留原始输出,但允许我添加新输出,例如:
@mixin foo {
color: blue;
}
@mixin foo {
@include foo; // this is the original
font-size: 14px;
}
当然,以上这些都不能满足我的要求,但我能做些什么吗?我一直在玩,想出了一个似乎有效的办法:
@mixin foo() {
color: red;
}
%foo {
@include foo;
}
@mixin foo() {
@extend %foo;
font-size: 22px;
}
.foo {
@include foo;
}
您可以使用
@content扩展/更改Mixin的代码块默认情况下,代码>中有行
@mixin foo(){
background:green;
border:solid 5px black;
@content;
}
div{
width:200px;
height:100px;
&.one{
+foo(){
border:0;
}
}
}
非常聪明的解决方案。一般来说,我建议创建一个新的mixin,但我也可以考虑一些需要覆盖的情况(使用良好的文档以避免混淆未来的开发人员)。