Ich habe versucht, den folgenden bewacht Mixins zu bekommen richtig in unserem WENIGER Sheets zu arbeiten:Leer, bewacht mixin wird eliminiert andere Mixins unter derselben Regel in weniger
#font {
.body(@size: 15px, @lineHeight: 18px, @weight: normal) {
font: @weight @size~"/"@lineHeight Arial, sans-serif;
}
.marginLeft(@margin) when (@margin = 0) { }
.marginLeft(@margin) when not (@margin = 0) {
margin-left: @margin;
}
.marginTop(@margin) when (@margin = 0) { }
.marginTop(@margin) when not (@margin = 0) {
margin-top: @margin;
}
.DinBold(@size: 14px, @lineHeight: 20px, @offsetTop: 0, @offsetLeft: 0) {
#font > .marginLeft(@offsetLeft);
#font > .marginTop(@offsetTop);
font: @size~"/"@lineHeight 'DINBold', Arial, sans-serif;
}
}
Die Idee dabei ist, dass wenn Jeder der Schriftoffsets ist Null. Ich möchte nicht, dass der Randstil gesetzt wird. Nun, es funktioniert gut, wenn die beiden Parameter nicht Null sind, wie:
#font > .DinBold(42px, 42px, -7px, -3px);
Aber in dem Moment @offsetLeft 0, entweder explizit oder implizit:
#font > .DinBold(42px, 42px, -7px);
oder
#font > .DinBold(42px, 42px, -7px, 0);
scheint es, dass selbst der Rand oben nicht belichtet wird. Das Gleiche passiert, wenn du es umdrehst, die marginTop-Mischung vor die marginLeft-Mischung stellst und stattdessen 0 für @offsetTop eingibst, was mir zu verstehen gibt, dass beim ersten Mixing alle weiteren Mixin-Aufrufe möglich sind ignoriert - irgendwelche Erkenntnisse dazu?
Das ist sicherlich ein ungewöhnliches Verhalten. Soweit ich feststellen kann, dass Ihr Bundle und Mixins korrekt sind, könnte es ein Problem mit LESS selbst sein. Vielleicht möchte ich ein Ticket auf dem Git Repo des Projekts öffnen. Eine Sache, die ich versuchte, war, einen Bruch für den Wert zu verwenden, den ich Null sein wollte, also 0.1px statt nur 0. und die Randattribute zeigten. Ich glaube nicht, dass CSS Brüche behandelt, also würde es wahrscheinlich als 0 interpretiert werden. –
Sieht aus, als ob sie endlich eine Lösung für dieses Problem gefunden haben, die mit der nächsten Version ausgehen sollte: https://github.com/cloudhead/less .js/issues/773 # issementcomment-7522445 – Johnny