占位符选择器
Sass 有一种特殊类型的选择器,称为“占位符”。它看起来很像类选择器,但它以 %
开头,并且不包含在 CSS 输出中。实际上,任何复杂选择器(逗号之间的选择器)即使包含占位符选择器,也不包含在 CSS 中,任何其所有选择器都包含占位符的样式规则也不包含在 CSS 中。
CSS 输出
.alert:hover {
font-weight: bold;
}
一个未发出的选择器有什么用?它仍然可以被扩展!与类选择器不同,占位符在没有被扩展时不会弄乱 CSS,并且它们不会强制库用户为其 HTML 使用特定类名。
游乐场
SCSS 语法
%toolbelt {
box-sizing: border-box;
border-top: 1px rgba(#000, .12) solid;
padding: 16px 0;
width: 100%;
&:hover { border: 2px rgba(#000, .5) solid; }
}
.action-buttons {
@extend %toolbelt;
color: #4285f4;
}
.reset-buttons {
@extend %toolbelt;
color: #cddc39;
}
游乐场
Sass 语法
%toolbelt
box-sizing: border-box
border-top: 1px rgba(#000, .12) solid
padding: 16px 0
width: 100%
&:hover
border: 2px rgba(#000, .5) solid
.action-buttons
@extend %toolbelt
color: #4285f4
.reset-buttons
@extend %toolbelt
color: #cddc39
CSS 输出
.reset-buttons, .action-buttons {
box-sizing: border-box;
border-top: 1px rgba(0, 0, 0, 0.12) solid;
padding: 16px 0;
width: 100%;
}
.reset-buttons:hover, .action-buttons:hover {
border: 2px rgba(0, 0, 0, 0.5) solid;
}
.action-buttons {
color: #4285f4;
}
.reset-buttons {
color: #cddc39;
}
占位符选择器在编写 Sass 库时很有用,其中每个样式规则可能被使用也可能不被使用。一般来说,如果您只为自己的应用程序编写样式表,如果有一个可用的类选择器,最好直接扩展它。