Wir haben keine "reguläre" Verschachtelung in CSS. Vielleicht wird dieses hier eines Tages zu einer Sache, oder etwas Ähnliches. Das wäre cool, obwohl diese Vor-Spezifikation nichts über Media Queries erwähnt. Ich würde hoffen, dass wir das gleich zu Beginn richtig hinbekommen, wenn wir jemals native CSS-Verschachtelung bekommen. Tatsächlich würde ich sie sofort gegen Selektor-Verschachtelung eintauschen. Ich würde sagen, das ist das Nützlichste, was ein CSS-Präprozessor wie Sass heute tut.
Aber ich bin abgeschweift, bevor ich überhaupt angefangen habe. Man kann Media Queries verschachteln in nativem CSS, solange man es von der Wurzel aus tut. Es ist lustig, es in nativem CSS zu sehen, aber es funktioniert!
@media screen {
@media (min-width: 1px) {
@media (min-height: 1px) {
@media (max-width: 9999px) {
@media (max-height: 9999px) {
body {
background: red;
}
}
}
}
}
}
Eine Sache, die ich mir wünschen würde, dass CSS nativ kann (was ich derzeit in Sass mache), ist, dass Media Queries innerhalb von Selektoren verschachtelt werden können, so:
Dies kehrt die Logik um zu „Das .foo-bar-Element hat Stile, wenn die Ansicht mehr als 800px beträgt“ gegenüber „Wenn die Ansicht mehr als 800px beträgt, haben die Elemente darin (einschließlich .foo-bar) diese Stile“.
Oft sehe ich eine riesige Media Query, die buchstäblich jede Stiländerung für jeden Selektor bei dieser Bildschirmgröße enthält. Wenn Sie Code verschieben müssen, können Sie Teile zurücklassen. Wenn Sie es auf diese Weise einschließen, wird der Code modularer, jeder Stil für dieses Element ist in einem Eltern-Klammerpaar enthalten.
Ich habe ein paar Jahre Pause vom Code gemacht, aber gerade ein neues Projekt begonnen, bei dem ich ein paar neue Wege zur Entwicklung ausprobieren wollte. Anstatt zu SCSS zu greifen, bin ich bei
postcss-preset-envgelandet, das die Entwurfsspezifikation enthält, die in Chris' Beitrag erwähnt wird.Es erlaubt mir, dies zu schreiben (was auch benutzerdefinierte Medientypen einschließt)
Was ziemlich unglaublich ist. Vielleicht kann ich eines Tages den Post-Processor-Schritt entfernen und mein Code funktioniert immer noch – wir werden sehen!
console.log(
maximale Höhe=54px)
Was genau bedeutet „von der Wurzel aus tun“?