SASS ma funkcję o nazwie @extend
, która umożliwia selektorowi dziedziczenie właściwości innego selektora, ale bez kopiowania właściwości (takich jak mixins).Czy LESS ma funkcję "rozszerzania"?
Czy funkcja MNIEJ ma również tę funkcję?
SASS ma funkcję o nazwie @extend
, która umożliwia selektorowi dziedziczenie właściwości innego selektora, ale bez kopiowania właściwości (takich jak mixins).Czy LESS ma funkcję "rozszerzania"?
Czy funkcja MNIEJ ma również tę funkcję?
Tak, less.js wprowadził extend
w v1.4.0.
:extend()
Zamiast realizacji w temperaturze reguły (@extend
) składni przez SASS i rysika, mniej realizowane składni pseudo klasy, który zapewnia realizacja MNIEJ na elastyczność być stosowane bezpośrednio do przełącznika sam lub wewnątrz oświadczenie. Tak więc oba te będą działać:
.sidenav:extend(.nav) {...}
lub
.sidenav {
&:extend(.nav);
...
}
Dodatkowo można użyć dyrektywy all
przedłużyć "zagnieżdżone" klas, a także:
.sidenav:extend(.nav all){};
i można dodać rozdzielana przecinkami lista klas, które chcesz rozszerzyć:
.global-nav {
&:extend(.navbar, .nav all, .navbar-fixed-top all, .navbar-inverse);
height: 70px;
}
Przedłużając zagnieżdżone selektorów należy zauważyć różnice:
zagnieżdżone Selektory .selector1
i selector2
:
.selector1 {
property1: a;
.selector2 {
property2: b;
}
}
Teraz .selector3:extend(.selector1 .selector2){};
wyjścia:
.selector1 {
property1: a;
}
.selector1 .selector2,
.selector3 {
property2: b;
}
, .selector3:extend(.selector1 all){};
wyjścia:
.selector1,
.selector3 {
property1: a;
}
.selector1 .selector2,
.selector3 .selector2 {
property2: b;
}
, .selector3:extend(.selector2){};
wyjścia
.selector1 {
property1: a;
}
.selector1 .selector2 {
property2: b;
}
i wreszcie .selector3:extend(.selector2 all){};
:
.selector1 {
property1: a;
}
.selector1 .selector2,
.selector1 .selector3 {
property2: b;
}
"Składnia LESS jest bardziej" wierna "tradycyjnemu CSS niż składnia reguły" at "(wdrożona przez SASS i Stylus), która jest zwykle zarezerwowana dla instrukcji lub instrukcji dla parsera CSS w przeglądarce." <- co do cholery ma to znaczyć? Pachnie jak marketing. – cimmanon
pozwól nam [kontynuować tę dyskusję na czacie] (http://chat.stackoverflow.com/rooms/26336/discussion-between-steveax-and-jonschlinkert) – steveax
@imimmanon Myślę, że masz rację, nie miałem na myśli to brzmi w ten sposób. Ale istnieje wiele kontrowersji na temat składni Less, pozornie, ponieważ ludzie oczekiwali, że Less będzie używać tej samej składni co SASS. Ale w CSS, selektory pseuso są używane do reguł porównywania wzorców w celu ustalenia, które reguły stylu odnoszą się do elementów w drzewie dokumentu, podczas gdy reguły at są używane dla dyrektyw "wyższego poziomu" (jak wspomniałem).Więc może powinienem edytować odpowiedź, aby podać ten szczegół? Czy jest to inne pytanie: "Dlaczego LESS wybrał pseudo-selektorową składnię?" – jonschlinkert
Dla wyjaśnienia, inne referencje pytanie nie prosi samo. To pytanie jest proste: "Czy MNIEJ ma funkcję rozszerzoną?". Drugie pytanie to pytanie, które wymaga dużo więcej przemyśleń dotyczących decyzji dotyczących stylizacji. – jonschlinkert
... aby dodać do mojego ostatniego komentarza, drugie pytanie zawiera znacznik "stylu kodowania", który dodatkowo wspiera mój punkt. – jonschlinkert