@mixin 中的 SCSS 相对值
SCSS relative value in @mixin
我想在 SCSS 中使用 classes 编写简短的 flex
规则。我想写一个一次性 justify-content
class 块并使用 @mixin
以便将它插入到 flex 选项中。
我如何(如果可能)在 @mixin
中编写一个相对变量来表示包含 @mixin
的父 class?
.row {
display: flex;
flex-direction: row;
@include justification;
}
.column {
display: flex;
flex-direction: column;
@include justification;
}
@mixin justification {
&-center {
@extend {parent};
justify-content: center;
}
&-start {
@extend {parent};
justify-content: start;
}
}
代替 {parent} 的是什么,其中 'parent' 表示包含此 mixin 的 class?
我认为你应该制作一个如下所示的 mixin 并在其中提供默认值。
@mixin flex-properties($flex:flex, $justify-content: center, $align-items: center) {
display: $flex;
justify-content: $justify-content;
align-items: $align-items;
}
要使用上面的 mixin & 你也可以更改其参数的默认值:-
.some-class {
@include flex-properties(flex, space-between, center);
}
是的!我做到了!
答案的关键是将包含程序的 class 名称作为参数传递给 @mixin
。像这样:
.row {
display: flex;
flex-direction: row;
@include justification(&);
}
.column {
display: flex;
flex-direction: column;
@include justification(&);
}
@mixin justification($class) {
&-center {
@extend #{$class};
justify-content: center;
}
&-start {
@extend #{$class};
justify-content: start;
}
}
有效
我想在 SCSS 中使用 classes 编写简短的 flex
规则。我想写一个一次性 justify-content
class 块并使用 @mixin
以便将它插入到 flex 选项中。
我如何(如果可能)在 @mixin
中编写一个相对变量来表示包含 @mixin
的父 class?
.row {
display: flex;
flex-direction: row;
@include justification;
}
.column {
display: flex;
flex-direction: column;
@include justification;
}
@mixin justification {
&-center {
@extend {parent};
justify-content: center;
}
&-start {
@extend {parent};
justify-content: start;
}
}
代替 {parent} 的是什么,其中 'parent' 表示包含此 mixin 的 class?
我认为你应该制作一个如下所示的 mixin 并在其中提供默认值。
@mixin flex-properties($flex:flex, $justify-content: center, $align-items: center) {
display: $flex;
justify-content: $justify-content;
align-items: $align-items;
}
要使用上面的 mixin & 你也可以更改其参数的默认值:-
.some-class {
@include flex-properties(flex, space-between, center);
}
是的!我做到了!
答案的关键是将包含程序的 class 名称作为参数传递给 @mixin
。像这样:
.row {
display: flex;
flex-direction: row;
@include justification(&);
}
.column {
display: flex;
flex-direction: column;
@include justification(&);
}
@mixin justification($class) {
&-center {
@extend #{$class};
justify-content: center;
}
&-start {
@extend #{$class};
justify-content: start;
}
}
有效