Salut, j'essaie d'apprendre le SASS/SCSS et j'essaie de refactoriser mon propre mixin pour clearfix
ce que j'aimerais, c'est que le mixin soit basé sur le fait que je lui passe une largeur ou non.
pensées jusqu'ici (pseudo-code uniquement car je vais inclure d'autres mixins)
@mixin clearfix($width) {
@if !$width {
// if width is not passed, or empty do this
} @else {
display: inline-block;
width: $width;
}
}
voici comment je pensais que je pourrais l'appeler, mais ça ne marche pas.
@include clearfix();
ou
@include clearfix(100%)
ou
@include clearfix(960px)
J'apprécierais toute aide sur la meilleure ou la bonne façon de faire cela!
Vous pouvez essayer ceci:
$width:auto;
@mixin clearfix($width) {
@if $width == 'auto' {
// if width is not passed, or empty do this
} @else {
display: inline-block;
width: $width;
}
}
Je ne suis pas sûr du résultat souhaité, mais la définition d'une valeur par défaut devrait renvoyer false.
Vous pouvez affecter des valeurs de paramètre par défaut en ligne lorsque vous créez le mixin:
@mixin clearfix($width: 'auto') {
@if $width == 'auto' {
// if width is not passed, or empty do this
} @else {
display: inline-block;
width: $width;
}
}
Vous pouvez définir par défaut le paramètre sur null
ou false
.
De cette façon, il serait plus court de tester si une valeur a été passée en paramètre.
@mixin clearfix($width: null) {
@if not ($width) {
// if width is not passed, or empty do this
} @else {
display: inline-block;
width: $width;
}
}