HTMLWiki.de: Klassen und IDs
HTMLWiki.de >
HTML lernen • Beispiele • Tutorials • KI

[ START ] [ TUTORIAL ] [ HTML ] [ CSS ] [ KI ] [ SPIELWIESE ] [ SITEMAP ]

Klassen und IDs: Deine eigenen Anker

Elementnamen wie p oder h2 treffen immer alle Exemplare. Sollen nur bestimmte Elemente anders aussehen, brauchst du eigene Markierungen: Klassen und IDs. Beide werden im HTML als Attribut vergeben und im CSS als Selektor angesprochen.

So sieht das aus

HTML

<p class="hinweis wichtig">Vorher speichern!</p>
<footer id="seitenfuss">...</footer>

CSS

.hinweis { background: #FFFFCC; padding: 10px; }
.wichtig { border: 1px solid #CC0000; }
#seitenfuss { text-align: center; }

Der Unterschied in einem Satz

Eine Klasse darf beliebig oft vorkommen und ein Element darf mehrere tragen (mit Leerzeichen getrennt, wie oben). Eine ID ist ein Eigenname: pro Seite genau einmal, pro Element genau eine. Aus dieser Natur ergibt sich die Arbeitsteilung: Klassen sind wiederverwendbare Styling-Bausteine, IDs markieren einmalige Dinge.

Warum fürs Styling fast immer Klassen?

  • Wiederverwendbar: Die Hinweisbox von oben funktioniert an zehn Stellen, eine ID nur an einer.
  • Kombinierbar: Mehrere Klassen ergeben zusammen den Look, wie Bausteine.
  • Friedlich: IDs haben brutale Spezifität und übersteuern Klassen. Ein Stylesheet voller ID-Regeln wird zur Eskalationsspirale, in der irgendwann !important regirt.

Wofür IDs dann? Für alles wo Einmaligkeit der Punkt ist: Sprungziele für Links (href="#kapitel3"), die Verknüpfung von label und Feld, JavaScript-Zugriffe. Dort sind sie unersetzlich, nur eben nicht als Styling-Standardwerkzeug.

Gute Namen vergeben

Benenne nach der Aufgabe, nicht nach dem Aussehen: .hinweis statt .gelbe-box, .fehler statt .rot. Denn wehe die gelbe Box wird nächstes Jahr blau, dann lügt der Name für immer. Kleinschreibung mit Bindestrichen hat sich als Konvention durchgesetzt (.nav-links, .btn-gross), Umlaute und Leerzeichen habn in Klassennamen nichts verloren.

Typische Fehler

  • Dieselbe ID mehrfach vergeben. Der Validator meckert zurecht.
  • Für jedes Element eine neue Klasse erfinden statt vorhandene wiederzuverwenden.
  • Klassen an alles kleben, auch wo ein schlichter Elternselektor (nav a) reichen würde.

Weiter im Lernpfad: Farben · Verwandt: HTML-Attribute