Leistungsstarkes und stabiles CSS, das Sie heute schon verwenden können.
Meiner Meinung nach sollte jeder Frontend-Entwickler wissen, wie man Containerabfragen verwendet, Scroll-Snap-Effekte erstellt, position: absolute mit Grid vermeidet, schnell einen Kreis erstellt, Cascading Layers verwendet und mit logischen Eigenschaften mehr mit weniger erreicht. Hier ist ein kurzer Überblick über die einzelnen Erwartungen.
1. Containerabfrage
Die am häufigsten angeforderte CSS-Funktion seit 10 Jahren ist jetzt stabil in allen Browsern und kann 2023 für Breitenabfragen verwendet werden.
.panel {
container: layers-panel / inline-size;
}
.card {
padding: 1rem;
}
@container layers-panel (min-width: 20rem) {
.card {
padding: 2rem;
}
}
2. Scroll Snap
Gut inszenierte Scrollvorgänge heben Ihre App von anderen ab. Mit Scroll-Snapping können Sie die Scroll-UX des Systems nachbilden und gleichzeitig sinnvolle Haltepunkte schaffen.
.snaps {
overflow-x: scroll;
scroll-snap-type: x mandatory;
overscroll-behavior-x: contain;
}
.snap-target {
scroll-snap-align: center;
}
.snap-force-stop {
scroll-snap-stop: always;
}
Hier finden Sie eine große und inspirierende Codepen-Sammlung mit etwa 25 Demos, die das Potenzial dieser CSS-Funktion veranschaulichen.
scroll-snap-typescroll-snap-alignscroll-snap-stopoverscroll-behavior3. Rasterstapel
Vermeiden Sie „position: absolute“ bei einem CSS-Grid mit einer einzelnen Zelle. Sobald sie übereinander gestapelt sind, können Sie sie mit den Eigenschaften „justify“ und „align“ positionieren.
.pile {
display: grid;
place-content: center;
}
.pile > * {
grid-area: 1/1;
}
grid4. Schnellzugriff
Es gibt viele Möglichkeiten, Kreise in CSS zu erstellen, aber diese ist definitiv die minimalistischste.
.circle { inline-size: 25ch; aspect-ratio: 1; border-radius: 50%; }
aspect-ratio5. Varianten mit @layer steuern
Kaskadenschichten können helfen, Varianten einzufügen, die später erkannt oder erstellt wurden, und zwar an der richtigen Stelle in der Kaskade mit dem ursprünglichen Satz von Varianten.
/* file buttons.css */ @layer components.buttons { .btn.primary { … } }
Fügen Sie dann in einer völlig anderen Datei, die zu einem anderen zufälligen Zeitpunkt geladen wird, der Schaltflächenebene eine neue Variante hinzu, als wäre sie die ganze Zeit mit den anderen vorhanden gewesen.
/* file video-player.css */ @layer components.buttons { .btn.player-icon { … } }
@layer6. Weniger auswendig lernen und mehr erreichen mit logischen Eigenschaften
Merken Sie sich ein neues Boxmodell und müssen sich nie wieder um das Ändern des linken und rechten Innenabstands oder Rands für internationale Schreibmodi und Dokumentrichtungen kümmern.
Passen Sie Ihre Stile von physischen zu logischen Eigenschaften wie padding-inline, margin-inline und inset-inline an. Der Browser übernimmt dann die Anpassung.
button { padding-inline: 2ch; padding-block: 1ch; } article > p { text-align: start; margin-block: 2ch; } .something::before { inset-inline: auto 0; }