Czy w ogóle ma LESS zastosować bezpośredni selektor potomny (>) w swoim wyjściu?
W moim stylu, bez, chcę napisać coś takiego:
.panel {
...
> .control {
...
}
}
i mają MNIEJ generować coś takiego:
.panel > .control { ... }
Czy w ogóle ma LESS zastosować bezpośredni selektor potomny (>) w swoim wyjściu?
W moim stylu, bez, chcę napisać coś takiego:
.panel {
...
> .control {
...
}
}
i mają MNIEJ generować coś takiego:
.panel > .control { ... }
Odpowiedzi:
AKTUALIZACJA
W rzeczywistości kod z pierwotnego pytania działa dobrze. Możesz po prostu trzymać się >
selektora podrzędnego.
Znalazłem odpowiedź.
.panel {
...
>.control {
...
}
}
Zwróć uwagę na brak spacji między „>” i „.”, W przeciwnym razie nie zadziała.
.panel >.control
.
div > p
i div>p
. Spójność polegałaby zawsze na użyciu spacji między selektorami (spójrz na wygenerowany CSS).
Oficjalny sposób:
.panel {
& > .control {
...
}
}
&
zawsze odnosi się do bieżącego selektora.
Zobacz http://lesscss.org/features/#features-overview-feature-nested-rules
div > p
czy div >p
? &
Syntezatora jest kanoniczny sposób to zrobić w mniej, nie moje uczucia. Twoje wyjaśnienie jest retoryczne. Niektórzy piszą swoje CSS w jednej linii ...
Prawidłowa składnia byłaby następująca, podczas gdy użycie „&” byłoby tutaj zbędne.
.panel{
> .control{
}
}
Zgodnie z mniejszymi wytycznymi „&” służy do parametryzacji przodków (ale nie ma takiej potrzeby). W tym mniej przykład , i: hover jest niezbędna przez : hover inaczej byłoby to spowodować składniowej błędu. Jednak nie ma takiego wymogu składniowego przy użyciu znaku „&” w tym miejscu. W przeciwnym razie wszystkie zagnieżdżenia wymagałyby znaku „&”, ponieważ zasadniczo odnoszą się do rodzica.
Ponadto, jeśli celujesz w pierwszy element podrzędny, taki jak pierwszy element <td>
a <tr>
, możesz użyć czegoś takiego:
tr {
& > td:first-child {font-weight:bold;}
}
pomaga to zredukować deklaracje klas, gdy nie są potrzebne.