Le .lib-css()
mixin est largement utilisé dans les fichiers Magento 2 LESS. Cependant, son objectif n'est pas apparent et les définitions de mixin ne fournissent aucune documentation utile:
// // Ajouter une propriété css // --------------------------------------------- .lib-css ( @_propriété, @_valeur, @_prefix: 0 ) quand (@_prefix = 1) et non (@_value = '') et non (@_value = false) et non (extraire (@_ valeur, 1) = faux) et non (extraire (@_ valeur, 2) = faux) et non (extraire (@_ valeur, 3) = faux) et non (extraire (@_ valeur, 4) = faux) et non (extraire (@_ valeur, 5) = faux) { -webkit - @ {_ property}: @_value; -moz - @ {_ propriété}: @_value; -ms - @ {_ propriété}: @_value; } .lib-css ( @_propriété, @_valeur, @_prefix: 0 ) quand ce n'est pas le cas (@_value = '') et non (@_value = false) et non (extraire (@_ valeur, 1) = faux) et non (extraire (@_ valeur, 2) = faux) et non (extraire (@_ valeur, 3) = faux) et non (extraire (@_ valeur, 4) = faux) et non (extraire (@_ valeur, 5) = faux) { @{_valeur de la propriété; }
Je pouvais voir pourquoi vous souhaitiez utiliser le mixin pour ajouter des préfixes de fournisseur aux propriétés CSS de pointe (bien qu'il y ait peu de propriétés où cela est nécessaire), mais la raison de la sortie des propriétés CSS normales à l'aide de ce mixin n'est pas claire. Quelqu'un peut-il faire la lumière sur cette question?
Réponses:
Les seules utilisations que je peux voir sont les préfixes et la suppression des règles précédemment déclarées:
Préfixes
Sortira:
Supprimer les règles précédemment déclarées au lieu de les supprimer
.lib-css()
donne la possibilité de supprimer toutes les règles qui utilisent une certaine variable au lieu de les désactiver ou de les définir sur0
ounone
. Par exemple, disons que nous voulons supprimer toutes les règles qui utilisent@button__shadow
. Tel que:Si ce n'était que pour un élément, il serait plus facile d'écrire
box-shadow: none;
. Mais si c'est sur disons 20 éléments, il sera plus rapide de les supprimer tous comme ça:Cela a l'avantage supplémentaire d'utiliser
@variable: none
car il réduit les lignes de code, au lieu d'en ajouter plus.Comparez donc ces deux méthodes:
MOINS
Production
MOINS
Production
Il n'y a pas de sortie, les règles ne sont pas traitées
Cela semble être une bonne idée, mais les cas d'utilisation semblent assez petits. Je vais plus probablement l'utiliser pour les préfixes. Il serait beaucoup plus utile de
@variable: false
pouvoir le définir localement, par exemple uniquement dans une division, malheureusement je n'ai pas pu faire fonctionner cela.Utilisation de base
J'ai remarqué que certaines variables sont définies sur false par défaut, telles que celles de
lib/web/css/source/lib/variables/_buttons.less
, je suppose que c'est le cas, elles ne sont donc pas sorties tant qu'elles ne sont pas nécessaires. C'est aussi une bonne idée.la source
Le mixin .lib-css () est utilisé pour définir n'importe quelle propriété css s'il y a une valeur qui lui est transmise par une variable. (par exemple)
De plus, .lib-css () peut ajouter des préfixes -ms-, -webkit- et -moz- si nécessaire.
Si la variable est définie sur false , le mixin .lib-css () n'ajoutera rien au code.
veuillez consulter les variables .lib-css
vous pouvez également trouver moins d'aide sous
la source
.lib-css(border-radius, @button__border-radius);
serait mieux que:border-radius: @button__border-radius;