// 声明块 @mixin b($block) { $B: $namespace + '-' + $block !global; .#{$B} { @content; } } // 声明元素 @mixin e($element) { $E: $element !global; $selector: &; $currentSelector: ''; @each $unit in $element { $currentSelector: #{$currentSelector + '.' + $B + $element-separator + $unit + ','} } @if hitAllSpecialNestRule($selector) { @at-root { #{$selector} { #{$currentSelector} { @content; } } } } @else { @at-root { #{$currentSelector} { @content; } } } } // 声明修饰符 @mixin m($modifier) { $selector: &; $currentSelector: ''; @each $unit in $modifier { $currentSelector: #{$currentSelector + $selector + $modifier-separator + $unit + ','} } @at-root { #{$currentSelector} { @content; } } }