Sass中的占位符选择器(以%
开头的选择器)是一种特殊的选择器类型,它的核心特点是:只会在被@extend
引用时才会生成CSS代码,否则不会出现在编译结果中。以下是详细解析:
%placeholder-name {
property: value;
}
@extend
引用,占位符不会生成任何CSS代码。@extend
可复用占位符中的样式,类似混合(Mixin),但编译机制不同。特性 | 占位符 % |
Mixin @mixin |
普通类 .class |
---|---|---|---|
是否默认输出CSS | ❌ 否 | ❌ 否 | ✅ 是 |
复用方式 | @extend %name |
@include name() |
@extend .class |
编译结果 | 合并选择器,代码更紧凑 | 重复样式代码 | 合并选择器 |
是否支持参数 | ❌ 否 | ✅ 是 | ❌ 否 |
%base-button {
padding: 10px 20px;
border-radius: 4px;
font-size: 16px;
}
// 通过@extend引用
.primary-btn {
@extend %base-button;
background: blue;
}
.error-btn {
@extend %base-button;
background: red;
}
.primary-btn, .error-btn {
padding: 10px 20px;
border-radius: 4px;
font-size: 16px;
}
.primary-btn { background: blue; }
.error-btn { background: red; }
@extend
会将选择器合并,减少重复样式。@extend
链式调用(如A继承B,B继承C)。@extend
不能在@media
内外跨作用域继承。占位符选择器是Sass中一种高效的样式复用工具,通过%
定义的样式仅在需要时(通过@extend
)输出,完美平衡了代码复用和输出控制。适合项目中需要多次复用但无需独立存在的样式片段。