我正在审查UiKit,一个用 LESS 构建的前端框架,并注意到一个相当有趣的特性:钩子。在基本框架中查看以下内容:
.uk-panel-badge {
position: absolute;
top: 0;
right: 0;
z-index: 1;
.hook-panel-badge;
}
.hook-panel-badge() {}
如果您想在主题中覆盖它,假设您在核心文件(编译中稍后出现的文件)之外构建,那么您将执行以下操作:
.hook-panel-badge() {
right:auto;
}
因此,从本质上讲,您无需添加额外的选择器就可以覆盖/自定义选择器,因此它使您的标记尽可能小。
SASS中是否有类似的东西?这看起来像是一个很棒的功能,我很乐意作为主要的 SASS 用户使用,但我发现它不@extend
一样。谢谢!
更新
该placeholder
功能似乎是我发现的最接近的东西:
.panel {
background:red;
@extend %hook-panel;
}
%hook-panel {
color:blue;
}
呈现为:
.panel {
background: red; }
.panel {
color: blue; }
并且可以在之后定义(这很棒),但这仍然会复制选择器。无论如何只在它包含的原始选择器中呈现占位符的值?