Kleine Seiten verzeihen Chaos, große nicht. Mit ein paar Gewohnheiten bleibt dein CSS auch nach Monaten verständlich.
Ein Reset und gute Grundwerte
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; }
body { line-height: 1.6; font-family: system-ui, sans-serif; }
img, svg, video, canvas { display: block; max-width: 100%; height: auto; }
input, button, textarea, select { font: inherit; }
p { text-wrap: pretty; }
h1, h2, h3 { text-wrap: balance; line-height: 1.2; }Aufbau einer Stylesheet-Datei
Eine bewährte Reihenfolge, vom Allgemeinen zum Speziellen:
- Variablen (
:root) - Reset und Basis (Elemente:
body,a,h1...) - Layout (Raster, Container, Seitenaufbau)
- Komponenten (
.karte,.button,.menue) - Hilfsklassen (
.zentriert,.sr-only) - Media Queries (am besten direkt bei der jeweiligen Komponente)
Benennung
Gute Klassennamen beschreiben die Funktion, nicht das Aussehen:
| Schlecht | Besser |
|---|---|
.rot, .gross-fett | .fehler, .titel |
.box2 | .produktkarte |
.links-menue-neu | .hauptmenue |
Die BEM-Konvention (Block, Element, Modifier) macht Zusammenhänge sichtbar:
Ergebnis
Wiederverwendbare Komponenten
Baue Bausteine, die an vielen Stellen funktionieren:
Ergebnis
Häufige Fehler vermeiden
- !important nur in Hilfsklassen oder Notfällen
- Zu tiefe Selektoren (
.a .b .c .d span): flach halten, ein bis zwei Ebenen - Magische Zahlen (
margin-top: 37px): lieber Variablen und ein Abstandssystem - IDs für Stil vermeiden, Klassen nutzen
- Duplikate: wiederkehrende Werte als Variablen
- Feste Höhen vermeiden:
min-heightund Inhalt bestimmen lassen - `outline: none` ohne Ersatz entfernt den sichtbaren Fokus
Abstandssystem
Statt zufälliger Werte nutzt du eine Skala:
Ergebnis
Leistung
- Ein Stylesheet statt vieler kleiner Dateien; minimiert und komprimiert (gzip/brotli)
- Kritisches CSS (für den ersten Bildschirm) bei Bedarf direkt im
<head> - Nicht benötigtes CSS entfernen (Browser-Werkzeug "Coverage")
will-changeundcontainnur gezielt einsetzen- Schriften und Bilder optimieren: sie sind meist größer als das gesamte CSS
Werkzeuge
| Werkzeug | Nutzen |
|---|---|
| Stylelint | prüft CSS auf Fehler und Stil |
| Prettier | formatiert CSS einheitlich |
| PostCSS / Lightning CSS | Präfixe, Minimierung, Bündelung |
| Browser-DevTools | Regeln live untersuchen und ändern |
| caniuse.com | Browserunterstützung prüfen |
Dokumentation der Entscheidungen
Ein kurzer Kommentarkopf in der Datei ("Farben: ...; Abstände: ...; Breakpoints: ...") und ein Style-Guide mit allen Komponenten auf einer Seite sparen dir und dem Team viel Zeit.
Merke
- Reset, Variablen, Layout, Komponenten, Hilfsklassen in klarer Reihenfolge
- Klassennamen nach Funktion; BEM zeigt Zusammenhänge
- Flache Selektoren, wenig
!important, keine IDs für Stil - Abstandsskala und Variablen statt magischer Zahlen
- Werkzeuge wie Stylelint, Prettier und DevTools helfen
Aufgabe
Baue eine kleine Komponentensammlung (Button, Karte, Hinweisbox) mit Variablen und BEM-Namen, alle auf einer Style-Guide-Seite.