Mac*_*yce 5 css sass compass-sass
我使用display:inline-block为按钮设置了mixin.我试图找到最终会使用mixim的任何类的父类,所以我可以在那里添加font-size:0px行以确保我不需要对我的HTML进行调整以避免不必要的每个按钮之间的空间.
这是一个例子......我想要的.父类接收font-size:0px行.
@mixin button() {
display:inline-block;
font-size: 1em;
//other stuff to make a pretty button
&& { font-size: 0px; }
}
.parent{
.child {
@include button();
}
}
Run Code Online (Sandbox Code Playgroud)
小智 13
从Sass 3.4开始,现在可以实现.
@mixin parent {
@each $selector in & {
$l: length($selector);
@if ($l == 1) {
@error "Used parent mixin on a top-level selector";
} @else {
$parent: nth($selector,1);
@for $i from 2 to $l {
$parent: append($parent,nth($selector,$i));
}
@at-root #{$parent} {
@content;
}
}
}
}
// Use
.grandparent {
.parent{
.child {
font-size: 1em;
@include parent {
font-size: 0px;
}
}
}
}
// Result
.grandparent .parent .child {
font-size: 1em;
}
.grandparent .parent {
font-size: 0px;
}
// Errors:
.root {
@include parent {
content: "Won't work";
}
}
.grandparent .parent, .root {
@include parent {
content: "Also won't work";
}
}
Run Code Online (Sandbox Code Playgroud)
不,这是不可能的.不过你可以这样做:
@mixin button($child: '.child') {
font-size: 0px;
//other stuff to make a pretty button
#{$child} {
display:inline-block;
font-size: 1em;
}
}
.parent{
@include button();
}
Run Code Online (Sandbox Code Playgroud)
输出:
.parent {
font-size: 0px;
}
.parent .child {
display: inline-block;
font-size: 1em;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8537 次 |
| 最近记录: |