Css 是否可以创建本地/私有sass混合?
我有三个sass文件:a.scss、b.scss、c.scss a、 scss:Css 是否可以创建本地/私有sass混合?,css,sass,Css,Sass,我有三个sass文件:a.scss、b.scss、c.scss a、 scss: @mixin font($size, $color){ font-size: #{$size}; color: #{$color} } p{ @include font(10px, blue) } b、 scss: @mixin font() { .. } c、 scss @import a.scss @import b.scss 我认为b.scss中的mixin font()覆盖了a
@mixin font($size, $color){
font-size: #{$size};
color: #{$color}
}
p{
@include font(10px, blue)
}
b、 scss:
@mixin font()
{
..
}
c、 scss
@import a.scss
@import b.scss
我认为b.scss中的mixin font()覆盖了a.scss中的mixin字体($size,$color)
p{
@include font(10px, blue) // use mixin font() in b.scss, error
}
是否可以创建本地/私有sass混合?或者sass中的所有mixin都是全局的,我必须为每个mixin给它们唯一的名称?你说得对。正如在典型的CSS文件中一样,sass项目是自上而下编译的。因此,与前一个同名的mixin将覆盖它。如果您希望在c.scss中使用原始mixin,则必须重新定义它。选择器中的mixin与Sass变量一样是该选择器的本地变量。这两种混合物相互独立:
.foo{
@mixin my_color(){
color: #ffcc00;
}
@include my_color;
}
.bar{
@mixin my_color(){
color: #00ffcc;
}
@include my_color;
}
因此,为了回答您的最后一个问题,只有在全局级别定义的mixin是全局的,否则您可以安全地重用名称。在您的示例中,如果您的a.scs、b.scs和c.scs被构造为定义不同的总体类(例如header、.main、.footer),那么您可以为每个类使用本地字体混合
相关: