Nesting, Nesting-Operator — mit oder ohne
Wo ist das Nest geblieben?
- css
- zur info
Keine Frage sondern “FYI“:
Was ich bislang nirgends (also nicht nur „hier“) gelesen, mir dafür aber zusammengereimt habe:
Nesting gibt’s mit und ohne &.
Ohne & funktioniert es so, als ob ein (dann unsichtbares) &, zusammen mit einem Whitspace, vor den einzelnen Kind-Selektoren geschrieben stünde.
Wenn in einem der Kind-Selektoren ein & auftaucht, dann verschwindet/entfällt in diesem Selektor der „virtuelle“ ersatzlos. Es bleiben nur die (es darf ja nicht nur „nur einen geben“) explizit hingeschriebenen!
„Man kann auch“:
.topSel {
/* virtuelles & */ .kindSel1 { }
& .kindSel2 { } /* 1&2 sind quasi Zwillinge */
&.kindSel3 { } /* 1+2 sagen: 3 gehört nicht zu uns! */
.keinKindSel & { /* Regel .topSel… gitl nur, wenn innerh. v. .keinKindSel */ }
& .rasselbande & {
.einSel & p & {
& & { /* ≡ .topSel .rasselbande .topSel .einSel .topSel .rasselbande .topSel p .topSel .rasselbande .topSel .topSel .rasselbande .topSel .einSel .topSel .rasselbande .topSel p .topSel .rasselbande .topSel */
*/
}
}
}
So wird das natürlich schnell … ein Anlaß, gewisse Vokabeln zu äußern.
Aber: mit Bedacht eingesetzt, kann aus verwirrenden Style-Sammlungen (und hier jetzt ohne &) fast schon ein Kunstwerk werden. — Nicht selten, wenn man Media-Queries nach „innen“ verlagert. Dann bleibt zusammen, was zusammen gehört:
body {
display: grid;
grid-template: …;
background-color: skyblue;
@media width < 128ch {
grid-template: …;
background-color: ivory;
@media width < 64ch {
display: flex;
background-color: yellow;
…
}
}
}
(Und: mit ch drin ist des dem User bzw. dem Browser dort überlassen, wie die Buchstaben aussehen, wie groß sie sein soll(t)en …)
Ach ja: „MDN sagt“, daß & auch ‚außerhalb der <del>Klassen</del>Style-Regeln eine klare Bedeutung hat: es gibt mehrere Wege „nach Dokument“. :root, &, :scope … noch jemand?
@@Wo ist das Nest geblieben?
Keine Frage sondern “FYI“:
Was ich bislang nirgends (also nicht nur „hier“) gelesen, mir dafür aber zusammengereimt habe:
- Trivialees
Nesting gibt’s mit und ohne
&.Ohne
&funktioniert es so, als ob ein (dann unsichtbares)&, zusammen mit einem Whitspace, vor den einzelnen Kind-Selektoren geschrieben stünde.
Keine Ahnung, welche Quellen du da herangezogen hast. Mit „nirgends“ kannst du nicht MDN meinen.
Verwendung von CSS-Nesting: „Sie können CSS-Nesting verwenden, um Kindselektoren eines Elternteils zu erstellen, die wiederum dazu verwendet werden können, Kindelemente spezifischer Elternziele anzusprechen. Dies kann mit oder ohne den & Nesting-Selector erfolgen.“
Nicht selten, wenn man Media-Queries nach „innen“ verlagert. Dann bleibt zusammen, was zusammen gehört:
Ja, aber …
body { display: grid; grid-template: …; background-color: skyblue; @media width < 128ch { grid-template: …; background-color: ivory; @media width < 64ch { display: flex; background-color: yellow; … } } }
… da fehlen Klammern.
Und es macht keinen Sinn, die MQs zu schachteln. Was kleiner ist als 64ch, ist immer auch kleiner als 128ch.
es gibt mehrere Wege „nach Dokument“.
:root,&,:scope… noch jemand?
html (oder wie immer das Wurzelelement der betreffenden Mark-up-Sprache heißt)
🖖 Live long and prosper