Je voudrais créer un mixin SASS / LESS qui demande si une variable est égale à une valeur, puis appliquer certaines règles 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 */
}
}
Et puis j'aimerais utiliser mon mix de cette façon:
$num: 1;
@include myTest(1) {
h1 {
color: blue;
background: red;
}
}
@include myTest(2) {
h1 {
color: yellow;
background: green;
}
}
Ainsi, seules les règles entre parenthèses de @include myTest(1) { ... }
sont appliquées.
Le problème est que je ne sais pas comment faire ça.
3 réponses
Vous devez utiliser @content dans votre mixin pour que tout ce qui était dans votre mixin soit poussé à travers
$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
Espère que cela aide
myTest
vérifie la valeur de la variable $myVar
et applique les règles css passées via @content
- voir 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;
}
}
Je ne suis pas tout à fait sûr d'avoir bien compris votre question, mais il semble que ce que vous deviez faire est de déplacer vos règles CSS dans votre mixin:
@mixin myTest($num) {
@if $num === 1 {
color: blue;
background: red;
} @else {
color: yellow;
background: green;
}
}
$num: 1;
h1 {
@include myTest($num);
}
Questions connexes
De nouvelles questions
css
CSS (Cascading Style Sheets) est un langage de feuille de style de représentation utilisé pour décrire l'apparence et la mise en forme des documents HTML (HyperText Markup Language), XML (Extensible Markup Language) et des éléments SVG, y compris (mais sans s'y limiter) les couleurs, la mise en page, les polices, et animations. Il décrit également comment les éléments doivent être affichés à l'écran, sur papier, dans un discours ou sur d'autres supports.