Gegeben Ich möchte folgendes weniger Code vereinfachen:Abzüglich: Die Kombination Selektor Variablen
@title1: ~"h1.someclass > a";
@title2: ~"h1.otherclass > a";
@{title1},@{title2} {
&:after {
display: none;
}
}
, die ausgewertet:
h1.someclass > a:after,
h1.otherclass > a:after {
display: none;
}
ich die Klassen zu verschmelzen versuchte von
@titles: ~"@{title1},@{title2}"; // Combine selectors for easier code
@{titles} {
&:after {
display: none;
}
}
mit
Dies wird jedoch unterschiedliche CSS ergeben.
h1.someclass > a,h1.otherclass > a:after {
display: none;
}
Liegt das an der Lazy Evaluation der Variablen? Wenn ja, warum ergibt es das CSS? Und gibt es eine andere Möglichkeit, Selektorvariablen zu kombinieren und später & zu verwenden: nach?
Liegt das an der Lazy Evaluation der Variablen? - Nein. Das liegt daran, dass Strings mit Escapezeichen (siehe [definition] (http://lesscss.org/features/#features-overview-feature-escaping)) nicht als komplexe Selektoren betrachtet werden (also Kommas oder andere spezielle Ops) keine Bedeutung dort). Weitere Referenzen finden Sie in [# 2263] (https://github.com/less/less.js/issues/2263). Daher ist ein anderer Ansatz erforderlich (siehe zum Beispiel https://stackoverflow.com/a/23954580/271274 * Teil # 3 *). –