web-dev-qa-db-fra.com

Moins de mixin avec des paramètres optionnels

J'ai un Less mixin défini comme:

.fontStyle(@family, @size, @weight: normal, @style: normal, @color: #ffffff, @letter-spacing: normal) {
  font-family: @family;
  font-size: @size;
  color: @color;
  font-weight: @weight;
  font-style: @style;
 letter-spacing: @letter-spacing;
}

Comment puis-je définir l'utilisation comme:

.fontStyle('NimbusSansNovCon-Reg', 12px, , , , 0.1em);

C'EST À DIRE. utiliser les valeurs par défaut pour @weight, @style, @color

26
Justin

Pour fournir un paramètre aussi loin dans la chaîne d'arguments, vous devez également fournir la variable attendue à définir. Donc ça:

.fontStyle('NimbusSansNovCon-Reg', 12px, @letter-spacing: 0.1em);

Produit ceci (notez comment color, font-weight, et font-style a utilisé les valeurs par défaut):

font-family: 'NimbusSansNovCon-Reg';
font-size: 12px;
color: #ffffff;
font-weight: normal;
font-style: normal;
letter-spacing: 0.1em;
29
ScottS

Voir la documentation

http://lesscss.org/features/#mixins-parametric-feature-mixins-with-multiple-parameters

Remarque: vous devriez prendre l'habitude d'utiliser des points-virgules pour séparer les paramètres car certaines valeurs css peuvent contenir des virgules.

3
Simon_Weaver