CSS-Quiz · Runde 2
CSS-Quiz: Allgemeines – Teil 2
10 Fragen zu Allgemeines in CSS 2.1. Jede Antwort wird sofort bewertet und erklärt; das Ergebnis erscheint am Ende der Seite.
Wie ein Stylesheet eingebunden wird
CSS-Dateien haben den MIME-Typ text/css. Das ist mehr als eine Formalität: Liefert ein Server eine Datei mit einem anderen Typ aus, ignoriert der Browser sie in einem Dokument im Standardmodus – das Stylesheet lädt, ist im Netzwerkprotokoll zu sehen und wirkt trotzdem nicht. Wer diesen Fall einmal erlebt hat, prüft ihn zuerst.
Neben dem verweisenden Element im Kopf gibt es die At-Regel für den Import. Für sie gilt eine strenge Vorschrift: Sie muss vor allen Regeln stehen, lediglich hinter einer Zeichensatzangabe und hinter Kommentaren. Eine Import-Angabe hinter der ersten Regel ist ungültig und wird verworfen.
Die Zeichensatzangabe wiederum steht als Erstes im Stylesheet, ohne Leerraum davor. Sie wird nur gebraucht, wenn der Server keinen Zeichensatz mitteilt – und heute praktisch nie, weil alle Beteiligten auf einer gemeinsamen Kodierung stehen. Konflikte zwischen widersprechenden Deklarationen löst in allen Fällen die Kaskade: Herkunft und Vorrang, dann Spezifität, dann die Reihenfolge im Quelltext.
Kommentare und Zeichenketten
CSS kennt genau eine Form des Kommentars: den Block zwischen Schrägstrich-Stern und Stern-Schrägstrich. Eine Zeilenform mit zwei Schrägstrichen gibt es nicht – sie stammt aus anderen Sprachen und aus Vorverarbeitern, und im Stylesheet macht sie den Rest der Deklaration ungültig. Auch verschachteln lassen sich Kommentare nicht: Der erste abschließende Stern-Schrägstrich beendet den Block.
Zeichenketten stehen in einfachen oder doppelten Anführungszeichen und dürfen die jeweils andere Sorte unmaskiert enthalten. Zeilenumbrüche darin sind nicht erlaubt; wo eine Zeichenkette über mehrere Zeilen laufen soll, wird der Umbruch mit einem umgekehrten Schrägstrich maskiert. Derselbe Schrägstrich maskiert Sonderzeichen in Bezeichnern und beliebige Zeichen über ihre Nummer im Zeichensatz.
Für Kommentare in einem Stylesheet gilt schließlich ein Punkt, der nichts mit der Syntax zu tun hat: Sie werden mit ausgeliefert. Was in einem Kommentar steht, kann jeder lesen, der die Datei aufruft – ein Grund, dort keine Notizen über Zwischenstände, Namen oder Werkzeuge zu hinterlassen.
Ersetzte Elemente
Ein ersetztes Element ist ein Element, dessen Darstellung nicht aus seinem Inhalt im Dokument entsteht, sondern von außen kommt: ein Bild, ein eingebettetes Objekt, ein Video, ein Formularfeld. Der Browser kennt für sie in der Regel eigene Maße – ein Bild bringt Breite und Höhe mit –, und genau das unterscheidet sie von allen anderen.
Daraus folgt eine Reihe von Sonderregeln. Ein ersetztes Inline-Element nimmt Breite und Höhe an, ein nicht ersetztes nicht; deshalb lässt sich ein Bild im Textfluss in seiner Größe bestimmen, ein Wort in einer Betonung nicht. Fehlt eine der Maßangaben, rechnet der Browser sie aus dem eigenen Seitenverhältnis des Objekts.
Ebenfalls hierher gehört die Antwort auf eine der bekanntesten Fragen: Warum steht unter einem Bild in einer Box eine Lücke von wenigen Pixeln? Weil das Bild als Inline-Element auf der Grundlinie sitzt und der Raum für die Unterlängen darunter mitgezählt wird. Abhilfe schafft eine andere senkrechte Ausrichtung oder ein Wechsel der Anzeigeart auf Block.
Welche Werte vererbt werden
Ob eine Eigenschaft vererbt, legt die Spezifikation für jede einzeln fest, und die Aufteilung folgt einer Logik: Vererbt wird, was den Text betrifft – Schriftfamilie, Größe, Schnitt, Zeilenhöhe, Vordergrundfarbe, Ausrichtung, Laufweite, Wortabstand, Leerraumbehandlung, Listenangaben, Sichtbarkeit, Zeigerform und die Angaben zur Sprachausgabe. Nicht vererbt wird, was die Box betrifft: Abstände, Rahmen, Hintergrund, Anzeigeart, Positionierung, Maße, Überlauf.
Vererbt wird dabei der berechnete Wert, nicht der notierte. Eine Schriftgröße von 80 Prozent am Elternelement ergibt dort einen festen Wert, und dieser wird weitergegeben – das Kind rechnet nicht noch einmal 80 Prozent. Die Ausnahme ist die Zeilenhöhe als Zahl ohne Einheit: Dort wird der Faktor vererbt und beim Kind neu ausgerechnet.
Eine Vererbung findet nur statt, wo keine Regel am Element selbst ansetzt. Ein geerbter Wert ist keine Deklaration und tritt deshalb nie gegen eine an – ein einziger Typselektor am Element schlägt jede noch so spezifische Angabe am Elternelement. Wer den Wert des Elternteils ausdrücklich will, notiert das Schlüsselwort für die Vererbung; es funktioniert auch bei den nicht vererbenden Eigenschaften.
Ergänzend lohnt der Grundlagenartikel zur Kaskade, der die vier Stufen in ihrer Reihenfolge durchgeht, und der Kaskaden-Visualizer, in dem sich bis zu sechs konkurrierende Regeln nebeneinanderlegen und in ihrer Rangfolge sortieren lassen.