The StyleWorksCSS { Referenz · Labor · Übungen }
  1. Startseite
  2. Testen
  3. Allgemeines 2

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.

Erstveröffentlichung Fragen 10Antwortmöglichkeiten 3 je Frage
Frage 1 von 10Von welchem MIME-Type sind CSS-Dateien?

Lösung

Richtig: text/css.

Frage 2 von 10Welchen Platz hat die @import-Regel innerhalb eines Stylesheets?

Lösung

Richtig: Vor allen anderen Regeln und nicht innerhalb von Deklarationsblocks. – Stimmt, sie muß ganz am Anfang stehen, auch die Blocks anderer @-Regeln dürfen keine …-Regel beinhalten.

Frage 3 von 10Wie werden Konflikte zwischen sich widersprechenden Deklarationen gelöst?

Lösung

Richtig: Durch die Regeln der Kaskade.

Frage 4 von 10Welche CSS-Selektoren haben die höchste Spezifizität?

Lösung

Richtig: Mit dem Attribut style im Quelltext angebrachte Regeln. – Stimmt: sie werden heute bereits von den Browsern als höherstehend behandelt und in CSS 2.1 ersetzt das Attribut … innerhalb des Quelltextes den Selektor, diese Regeln bekommen deshalb die Spezifizität ….

Frage 5 von 10Welcher der folgenden Kommentare darf niemals in CSS auftauchen?

Lösung

Richtig: Ein Kommentar, der mit */ beginnt und mit /* endet.

Frage 6 von 10Angenommen, ein Stylesheet enthielte folgende Deklarationen für das Element P:
P { color: maroon !important; font-weight: bold; }
P { color: navy !important; }
Wie würden Absätze demnach ausgegeben?

Lösung

Richtig: Dunkelblau und in Fettdruck. – Stimmt: für die Farbe wird entsprechend den Kaskadierungsregeln nach der Reihenfolge des Auftretens sortiert, zur Schriftstärke gibt es nur eine Angabe.

Frage 7 von 10Darf so ein Textstring in einer Regel verwendet werden?
# [alt="Eine alter\
native Ausgabe"] { ... }

Lösung

Richtig: Ja. – Richtig, eine Zeichenkette darf über mehrere Zeilen laufen, die Zeilenumbrüche müssen dann durch einen … maskiert werden.

Frage 8 von 10Angenommen, ein Browser unterstützt nicht den Wert inline-block. Wie würde er auf die folgende Deklaration reagieren?
h3 { display: block;
     display: inline-block; }

Lösung

Richtig: Er wird das Element als Block- Level- Element ausgeben. – Stimmt, Browser müssen Werte, die ihnen unbekannt sind, wie illegale Werte behandeln und ignorieren.

Frage 9 von 10Welche Werte eines Elementes werden an die Nachkommen-Elemente weitervererbt?

Lösung

Richtig: Die berechneten Werte.

Frage 10 von 10Für welche Elemente steht der Begriff 'Replaziertes Element'?

Lösung

Richtig: Für Elemente, deren Inhalt durch andere Inhalte ersetzt wird. – Stimmt, z.B. wird der Inhalt des Elements … durch das mit dem Attribut … designierte Bild ersetzt. Dieses gibt dann auch die Dimensionen vor.

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.