我想创建一个SASS / LESS mixin,询问变量是否等于某个值,然后应用一些CSS规则。
@mixin myTest($myVar: $num) {
@if ($myVar == $num) {
/* Apply rules if $myVar is set $num - I DO NOT KNOW WHAT SHOULD BE THERE */
} @else {
/* Do nothing */
}
}
然后我想以这种方式使用我的mixin:
$num: 1;
@include myTest(1) {
h1 {
color: blue;
background: red;
}
}
@include myTest(2) {
h1 {
color: yellow;
background: green;
}
}
这样只应用@include myTest(1) { ... }
括号内的规则。
问题是我不知道该怎么做。
答案 0 :(得分:1)
myTest
检查$myVar
变量的值,并通过@content
应用已通过的css规则 - 请参阅documentation。
@mixin myTest($myVar: $num) {
@if ($myVar= $num) {
@content;
}
}
$num: 1;
@include myTest(1) {
h1 {
color: blue;
background: red;
}
}
@include myTest(2) {
h1 {
color: yellow;
background: green;
}
}
答案 1 :(得分:0)
我不太确定我完全理解了你的问题,但似乎你需要做的就是将你的CSS规则移到你的混音中:
@mixin myTest($num) {
@if $num === 1 {
color: blue;
background: red;
} @else {
color: yellow;
background: green;
}
}
$num: 1;
h1 {
@include myTest($num);
}
答案 2 :(得分:0)
你需要在你的mixin中使用@content来让你的mixin中的所有内容都被推送到
$num: 1;
@mixin myTest($myVar: $num) {
@if ($myVar == $num) {
/* Apply rules if $myVar is set $num - I DO NOT KNOW WHAT SHOULD BE THERE */
@content; // this is how you get it in here
} @else {
/* Do nothing */
}
}
@include myTest(1) {
h1 {
background:red;
}
}
@include myTest(2) {
h1 {
background:blue;
}
}
https://codepen.io/anon/pen/YEJKRm
希望这会有所帮助