CSS-Selektoren, Kaskade und Boxmodell verstehen

Lerne, Webseiten mit CSS zu gestalten. Schreibe Regeln, binde ein Stylesheet ein, gehe von den Standardstilen des Browsers aus und wähle genau die gewünschten Elemente aus. Bestimme mithilfe von Kaskade, Spezifität und Vererbung, welcher Stil sich bei widersprüchlichen Regeln durchsetzt. Gib Farben an, wähle Einheiten, lege Größen und Abstände von Elementen mit dem Boxmodell fest und gestalte Schriftarten, Text, Listen, Links, Hintergründe und Rahmen.

AnfängerEinheit 4 von 8 in Kurs: HTML und CSS – barrierefreie, responsive Webseiten erstellen

Was du lernst

  1. Schreibe gültige CSS-Regeln, binde ein Stylesheet in eine HTML-Seite ein und gehe von den Stilen aus, die der Browser bereits anwendet. Untersuche mit den Entwicklerwerkzeugen, was dabei geschieht.
    • Schreibe CSS-Regeln und binde ein Stylesheet in eine Seite ein
      Lies und schreibe die Bestandteile einer CSS-Regel, wähle zwischen einem externen Stylesheet, einem <style>-Element und Inline-Stilen und lerne, wie der Browser mit Fehlern umgeht.
    • Gehe von den Standardstilen des Browsers aus und untersuche sie
      Erkenne die Stile, die jeder Browser vor deinen eigenen anwendet, entscheide, was du zurücksetzen möchtest, und finde mit den Entwicklerwerkzeugen heraus, warum ein Element so aussieht, wie es aussieht.
  2. Wähle mit Typ-, Klassen- und ID-Selektoren, Attributselektoren, Pseudoklassen, Pseudoelementen und Kombinatoren genau die gewünschten Elemente aus.
    • Wähle Elemente nach Typ, Klasse und ID aus
      Wähle Elemente nach Name, Klasse oder ID aus, kombiniere Selektoren, die auf dasselbe Element zutreffen müssen, und gruppiere mehrere Selektoren in einer Regel.
    • Wähle Elemente anhand von Attributen und Zuständen sowie Teile von Elementen aus
      Nutze Attributselektoren, Pseudoklassen für Zustände und Positionen sowie Pseudoelemente, die einen Teil eines Elements gestalten oder generierten Inhalt hinzufügen.
    • Kombiniere Selektoren anhand der Position der Elemente in der Seitenstruktur
      Wähle Elemente anhand ihrer Beziehung zu anderen Elementen im HTML-Baum aus: an beliebiger Stelle innerhalb, direkt innerhalb, direkt nach oder an beliebiger Stelle nach einem anderen Element.
  3. Ermittle, welche Deklaration gilt, wenn mehrere Regeln dieselbe Eigenschaft festlegen, berechne die Spezifität und erkläre, wie Elemente Werte erhalten, die ihnen keine Regel direkt zugewiesen hat.
    • Vollziehe die Kaskade nach und ermittle die maßgebliche Deklaration
      Wende die Schritte der Kaskade an (Herkunft und Wichtigkeit, Spezifität, dann Reihenfolge im Quelltext) und setze Inline-Stile, !important und Kaskadenebenen bewusst ein.
    • Berechne und vergleiche die Spezifität
      Bestimme die Spezifität eines beliebigen Selektors im ID-CLASS-TYPE-Format, vergleiche die Werte Spalte für Spalte und halte die Spezifität niedrig, damit sich Stile leicht überschreiben lassen.
    • Nutze Vererbung und die globalen Schlüsselwörter
      Lerne, welche Eigenschaften vom Eltern- an das Kindelement weitergegeben werden, nutze Vererbung für weniger CSS und steuere sie mit inherit, initial, unset und revert.
  4. Gib Farben in den wichtigsten CSS-Schreibweisen an, sorge für gut lesbaren Text vor seinem Hintergrund und wähle für Text, Abstände und Größen zwischen absoluten und relativen Einheiten.
    • Gib Farben mit Schlüsselwörtern, Hexadezimalwerten, rgb() und hsl() an
      Verwende Farbschlüsselwörter, Hexadezimalcodes, rgb() und hsl(), ergänze Transparenz und prüfe, ob Text genügend Kontrast zu seinem Hintergrund hat.
    • Wähle Längen und Einheiten
      Verwende Pixel, em, rem, Prozentangaben und Viewport-Einheiten korrekt, lerne die jeweiligen Bezugsgrößen relativer Einheiten kennen und kombiniere Einheiten mit calc().
  5. Erkläre, wie jedes Element als Box aus Inhalt, Innenabstand, Rahmen und Außenabstand dargestellt wird, berechne ihre Größe und steuere den Platz innerhalb und zwischen Boxen.
    • Berechne Boxgrößen aus Inhalt, Innenabstand, Rahmen und Außenabstand
      Benenne die vier Teile einer Box, schreibe die Kurzschreibweisen für Abstände und berechne die Größe eines Elements im Standard- und im alternativen Boxmodell.
    • Steuere die Abstände zwischen Blockboxen und Inlineboxen
      Bestimme, wie Blockboxen, Inlineboxen und Inline-Blockboxen Platz einnehmen, zentriere einen Block mit automatischen Außenabständen und erkenne, wann vertikale Außenabstände zusammenfallen.
  6. Wähle und lade Schriftarten, gestalte Text gut lesbar, formatiere Listen und Links und versehe Boxen mit Hintergründen, Farbverläufen, Rahmen, abgerundeten Ecken und Schatten.
    • Wähle Schriftarten und lade Webfonts
      Schreibe Schriftartenlisten mit Alternativen, lege Größe, Strichstärke und Stil fest, nutze die Kurzschreibweise font und lade eine eigene Schriftart mit @font-face.
    • Gestalte Text, Listen und Links gut lesbar
      Lege Zeilenhöhe, Ausrichtung, Dekoration, Groß- und Kleinschreibung und Abstände fest, ändere Listenzeichen und Einrückung und gib Links eindeutige, barrierefreie Zustände.
    • Füge Hintergrundfarben, Hintergrundbilder und Farbverläufe hinzu
      Fülle Boxen mit Farben, Bildern und Farbverläufen, steuere Wiederholung, Skalierung und Position von Hintergrundbildern und schreibe die Kurzschreibweise background.
    • Gestalte Rahmen, abgerundete Ecken, Konturen und Schatten
      Schreibe Rahmenkurzschreibweisen für alle oder einzelne Seiten, runde Ecken mit border-radius ab und füge Konturen und Schatten hinzu, ohne das Layout zu ändern.

CSS-Selektoren, Kaskade und Boxmodell einfach erklärt

6 Kapitel

1

Binde CSS ein und untersuche das Ergebnis

CSS macht aus einer inhaltlich strukturierten HTML-Seite eine Seite mit ausgewählten Farben, Schriftarten und Abständen. Eine funktionierende Regel braucht sowohl eine gültige Syntax als auch eine Verbindung zum Dokument. Der Browser bringt außerdem eigene Stile mit, sodass du immer mit einem vorhandenen Erscheinungsbild beginnst. Lerne, ein externes Stylesheet einzubinden, eine kleine Änderung vorzunehmen und sie in den Entwicklerwerkzeugen nachzuverfolgen, wenn das Ergebnis von deiner Erwartung abweicht.

1.1 Regeln, Deklarationen und Stylesheets

HTML beschreibt Inhalt und Bedeutung. CSS, kurz für Cascading Style Sheets, beschreibt die Darstellung: Farben, Schriftarten, Abstände, Rahmen und Hintergründe. Durch eine Änderung des Stylesheets kann dasselbe HTML anders aussehen, ohne seine Überschriften, Absätze oder Links zu ändern.

Eine Regel lesen
p {
  color: navy;
  font-size: 18px;
}

Der Selektor p trifft auf Absätze zu. Die geschweiften Klammern schließen den Deklarationsblock ein. Jede Deklaration besteht aus einer Eigenschaft, einem Doppelpunkt, einem Wert und einem Semikolon. Hier sind color und font-size Eigenschaften; navy und 18px sind Werte. Zeilenumbrüche und Leerzeichen zwischen diesen Teilen machen den Code leichter lesbar, ohne seine Wirkung zu ändern.

Ein Semikolon trennt eine Deklaration von der nächsten. Das letzte ist optional, verhindert aber Fehler, wenn du eine weitere Zeile hinzufügst. In color: navy font-size: 18px; liest der Browser einen ungültigen Farbwert. Er kann die beiden beabsichtigten Deklarationen nicht daraus wiederherstellen, sodass dieser Text keinen der beiden Stile festlegt.

CSS einbinden

Ein externes Stylesheet ist eine separate CSS-Datei, die vom head des HTML aus verknüpft wird:

<link rel="stylesheet" href="css/styles.css">

Dieser Pfad bedeutet, dass neben der HTML-Datei ein Ordner namens css liegt, der styles.css enthält. Eine externe Datei kann mehrere Seiten gestalten. Speicherst du dort eine Änderung, werden die Regeln aktualisiert, die diese Seiten laden.

Ein style-Element im head enthält Regeln für eine Seite. Ein Inline-style-Attribut enthält Deklarationen für ein Element, etwa <p style="color: crimson;">Hello.</p>. Externe Stylesheets sind meist leichter zu warten. Normale Inline-Deklarationen haben außerdem Vorrang vor normalen Regeln in Autoren-Stylesheets, was spätere Änderungen erschweren kann.

Für ein erstes Ergebnis schreibe body { font-family: Arial, sans-serif; } und h1 { color: darkslateblue; } in die verknüpfte Datei. Lade die Seite neu. Der Fließtext verwendet Arial, wo verfügbar, und sonst eine serifenlose Ersatzschrift; die Überschrift ändert ihre Farbe. Steuerelemente wie Schaltflächen können ihre eigene Browserschrift behalten, bis du sie ausdrücklich zur Vererbung veranlasst.

Syntax- und Pfadfehler finden

Browser überspringen ungültige Deklarationen und fahren fort. color: 12px; ist ungültig, weil eine Länge keine Farbe ist. font-size: 16 px; ist ungültig, weil Zahl und Einheit direkt aneinanderstehen müssen. Eine falsch geschriebene Eigenschaft wird ebenfalls ignoriert. Eine gültige Rahmendeklaration im selben Block kann trotzdem funktionieren. Eine sichtbare Änderung beweist also nicht, dass jede Deklaration gültig ist.

CSS-Kommentare verwenden /* Header styles */ und können sich über mehrere Zeilen erstrecken. // beginnt keinen CSS-Kommentar; dadurch kann nachfolgender Code übersprungen werden. Bei Eigenschaftsnamen und gewöhnlichen Schlüsselwortwerten wird nicht zwischen Groß- und Kleinschreibung unterschieden; schreibe sie wie üblich klein. Klassennamen und Dateipfade müssen in Schreibweise und Groß- und Kleinschreibung genau übereinstimmen.

Wenn keine Stile erscheinen, prüfe die Anfrage im Netzwerkbereich. Ein falscher Pfad wie style.css kann 404 zurückgeben, obwohl sich die HTML-Seite selbst normal öffnet.

Kurzschreibweisen als vollständige Festlegungen behandeln

Eine Kurzschreibweise legt mehrere verwandte Eigenschaften zugleich fest. margin: 10px 20px; legt alle vier Außenabstände fest. Ausgelassene Teile kehren zu ihren Anfangswerten zurück: Auf background-image: url("sky.jpg"); folgendes background: lightblue; entfernt das Bild. Schreibe zuerst die Kurzschreibweise und danach alle Ausnahmen als Einzeleigenschaften, die erhalten bleiben sollen.

Wichtige Erkenntnisse

  • Schreibe jede Deklaration innerhalb einer Regel als property: value;.
  • Verknüpfe ein externes Stylesheet vom head des HTML aus; löse seinen Pfad von der HTML-Datei aus auf.
  • Ein Browser überspringt ungültiges CSS und verarbeitet gültige Deklarationen weiter.
  • Verwende /* ... */ für CSS-Kommentare.
  • Eine Kurzschreibweise setzt zugehörige ausgelassene Einzeleigenschaften zurück.

1.2 Standardstile des Browsers und Entwicklerwerkzeuge

Eine einfache HTML-Seite hat bereits große Überschriften, Absatzabstände, Listenzeichen und unterstrichene Links. Sie stammen aus dem Browser-Stylesheet, dem eingebauten CSS des Browsers. Deine Stile setzen auf diesen Standardstilen auf; eine ungestaltete Seite ist keine Seite ohne CSS-Regeln.

Bedeutung vor Aussehen wählen

Typische Standardstile sind ein 8px großer Außenabstand des body, vertikale Absatzabstände von 1em und ein Innenabstand von 40px an der Anfangsseite von Listen. Für Überschriften gelten unter anderem 2em für h1 und 1.5em für h2; h1 hat vertikale Außenabstände von 0.67em. Als wichtig ausgezeichneter Text ist fett, betonter Text kursiv. Nicht besuchte Links sind meist blau und besuchte Links violett. Browsereinstellungen und Implementierungen können die Standardstile beeinflussen. Untersuche daher die tatsächliche Seite, wenn es auf Genauigkeit ankommt.

Die Standardschriftgröße beträgt häufig 16px; die Schriftart wird in den Browsereinstellungen gewählt. Leser können diese Größe ändern. Relative Schriftgrößen können dieser Einstellung folgen.

Wähle ein HTML-Element nach seiner Bedeutung aus und gestalte es anschließend. Wenn ein h2 zu groß aussieht, verwende h2 { font-size: 1.25rem; }. Ein h4 allein wegen der kleineren Schrift zu wählen, würde die Überschriftenstruktur ändern. Eine Änderung der CSS-Größe lässt die Bedeutung als Überschrift zweiter Ebene erhalten.

Die Standardstile bestimmen auch, wie Elemente Platz einnehmen. Absätze und Abschnitte bilden normalerweise Blockboxen. Spans und Links fließen normalerweise innerhalb von Zeilen. Listeneinträge haben display: list-item und erhalten dadurch eine Box auf Blockebene und ein Listenzeichen. Eine Änderung von display in CSS verändert das Verhalten der Box, erhält aber die HTML-Bedeutung des Elements.

Nur Gewünschtes zurücksetzen

Ein CSS-Reset entfernt ausgewählte Standardstile. body { margin: 0; } entfernt den äußeren Abstand. Eine umfassende Regel wie * { margin: 0; padding: 0; } entfernt auch Absatzabstände und Listeneinrückungen, die du anschließend wiederherstellen musst. Ein Normalize-Ansatz behält nützliche Standardstile bei und gleicht Unterschiede aus.

Formularsteuerelementen werden häufig direkt Browserschriften zugewiesen. Damit sie zur Seite passen, schreibe:

button, input, select, textarea {
  font: inherit;
}

Beginne das HTML-Dokument mit <!DOCTYPE html>. Dadurch wird der Standardmodus ausgewählt. Fehlt die Dokumenttypdeklaration, kann der Quirks-Modus ausgelöst werden, in dem älteres Kompatibilitätsverhalten manche Größen und andere CSS-Ergebnisse verändert.

Die auffällige Eigenschaft untersuchen

Klicke ein Element mit der rechten Maustaste an und wähle Untersuchen. Der Stilbereich zeigt passende Regeln einschließlich der als Browserstile gekennzeichneten Regeln. Eine durchgestrichene Deklaration hat einer anderen unterlegen; eine Warnung kann ungültiges CSS anzeigen. Die maßgeblichen Deklarationen werden für jede Eigenschaft einzeln ausgewählt. Eine Regel kann also bei der Farbe unterliegen und dennoch den Innenabstand liefern.

Der Bereich für berechnete Stile zeigt die endgültigen Eigenschaftswerte sowie Inhalt, Innenabstand, Rahmen und Außenabstand des Boxmodells. Hat eine Überschrift einen unerwarteten Abstand, untersuche ihren Außenabstand, bevor du einem anderen Element Innenabstand hinzufügst. Teste eine Änderung direkt in den Entwicklerwerkzeugen und übertrage die funktionierende Regel dann in dein Stylesheet: Änderungen in der Untersuchung verschwinden beim Neuladen.

Wenn ein Stil nicht funktioniert, hilft diese Reihenfolge: Prüfe, ob das Stylesheet geladen wurde, der Selektor zutrifft, die Deklaration gültig ist, sie sich durchsetzt und die Eigenschaft diese Art von Box beeinflusst. Auch ein gültiges width: 200px legt die Größe eines gewöhnlichen Inline-span nicht fest.

Wichtige Erkenntnisse

  • Das Browser-Stylesheet liefert lesbare Standardstile, bevor dein CSS angewendet wird.
  • Wähle HTML-Elemente nach ihrer Bedeutung und ändere ihr Aussehen mit CSS.
  • Ein CSS-Reset entfernt Standardstile, die du möglicherweise wieder ergänzen musst.
  • Verwende mit <!DOCTYPE html> den Standardmodus.
  • Untersuche passende Regeln, ihre Gültigkeit und durchgestrichene Deklarationen, bevor du Code änderst.
  • Übertrage erfolgreiche Versuche aus den Entwicklerwerkzeugen in das Stylesheet.
2

Wähle genau die richtigen Elemente aus

Ein Selektor beschreibt, welche Elemente eine Regel erreicht. Manche Selektoren treffen anhand von Namen oder Attributen zu, andere anhand eines Zustands, eines Elementteils oder einer Beziehung im HTML-Baum. Kleine Unterschiede bei den Zeichen sind entscheidend: Ein Leerzeichen, ein Komma und ein Punkt wählen jeweils etwas anderes aus. Gehe von dem Element aus, das du gestalten möchtest, und dann zurück durch die Bedingungen, die es bestimmen. So erreicht eine Regel alle gewünschten Elemente und lässt die übrigen unverändert.

2.1 Typ-, Klassen-, ID- und zusammengesetzte Selektoren

Ein Selektor beantwortet eine praktische Frage: Welche Elemente sollen diese Deklarationen erhalten? Beginne mit dem einfachsten Selektor, der die gewünschte Rolle beschreibt. Eine Klasse lässt sich für viele Elemente wiederverwenden, ohne den Stil an eine bestimmte Stelle der Seite zu binden.

Namen und Attribute auswählen
SelektorTrifft zu auf
pJeden Absatz
.warningJedes Element mit der Klasse warning
#site-headerDas Element mit der ID site-header
*Jedes Element

Ein Typselektor ist ein Elementname. Ein Klassenselektor beginnt mit einem Punkt; ein ID-Selektor beginnt mit #. Das Zeichen gehört zum CSS-Selektor, nicht zum HTML-Attributwert. Schreibe <p class="warning">, nicht <p class=".warning">.

Ein Element kann mehrere durch Leerzeichen getrennte Klassen haben. Sowohl <p class="warning"> als auch <div class="box warning"> passen zu .warning. Eine ID muss innerhalb einer Seite eindeutig sein. Ihre hohe Spezifität macht ID-basierte Stile außerdem schwerer überschreibbar. Daher sind Klassen meist das wichtigste Werkzeug für wiederverwendbare Stile.

Verwende Namen, die eine Rolle beschreiben, etwa .error-message oder .product-card. Ein Name wie .red-text wird irreführend, wenn das Design auf eine andere Farbe wechselt. Bei Klassennamen wird zwischen Groß- und Kleinschreibung unterschieden: .Warning und .warning sind verschieden. Beginnt ein Name mit einer Ziffer, muss diese in einem CSS-Selektor mit einer Escape-Sequenz geschrieben werden. Mit .three-columns vermeidest du die ungültige Form .3-columns ohne Escape-Sequenz.

Mehrere Bedingungen für ein Element festlegen

Direkt aneinandergeschriebene Selektoren bilden einen zusammengesetzten Selektor. Dasselbe Element muss alle Teile erfüllen. p.intro trifft auf Absätze mit der Klasse intro zu. .card.featured trifft auf ein Element mit beiden Klassen zu.

<p class="note important">Doors open at 19:00.</p>
<p class="note">Bring your ticket.</p>
.note { color: #333333; }
.important { font-weight: bold; }
p.note.important { border-left: 4px solid crimson; }

Ermittle zuerst, worauf die Selektoren zutreffen. Beide Absätze haben note und erhalten daher dunkelgrauen Text. Nur der erste hat important und wird deshalb als Einziger fett. Der zusammengesetzte Selektor fügt demselben ersten Absatz den linken Rahmen hinzu, weil er ein p mit beiden Klassen ist. Ein zusätzliches umschließendes Element ist nicht nötig.

Ein Leerzeichen ändert die Auswahl: p .intro wählt ein Element mit der Klasse intro innerhalb eines Absatzes aus. Es wählt nicht den Absatz selbst aus. Schreibe die Teile direkt zusammen, wenn sie dasselbe Element beschreiben.

Einen Deklarationsblock gemeinsam nutzen

Ein Komma erzeugt eine Selektorliste:

h1, h2, h3 { font-family: Georgia, serif; }

Jeder Selektor trifft unabhängig auf seine Überschriftenebene zu. Ohne die Kommas würde h1 h2 h3 ein h3 innerhalb eines h2 innerhalb eines h1 auswählen.

Ein ungültiger Selektor in einer gewöhnlichen Selektorliste kann die gesamte Regel ungültig machen. h1, h2..title, h3 gestaltet keine dieser Überschriften, weil der doppelte Punkt ungültig ist. Scheint eine gemeinsame Regel zu fehlen, prüfe jeden Selektor in der Liste, nicht nur den für das untersuchte Element.

Wichtige Erkenntnisse

  • Eine Klasse kann auf vielen Elementen vorkommen und ein Element kann mehrere Klassen haben.
  • Eine ID muss auf der Seite eindeutig sein und hat als Selektor eine hohe Spezifität.
  • p.intro verlangt beide Bedingungen auf einem Element; p .intro beschreibt ein Nachfahrenelement.
  • Kommas erzeugen unabhängige Selektoren, die sich Deklarationen teilen.

2.2 Attribute, Zustände und Teile

Manche Gestaltungsbedingungen sind bereits in HTML-Attributen vorhanden. Andere hängen davon ab, was Leser gerade tun oder wo ein Element unter seinen Geschwisterelementen steht. CSS kann diese Bedingungen erkennen, ohne für jede eine Klasse hinzuzufügen.

Ein Attribut oder seinen Wert auswählen

Attributselektoren verwenden eckige Klammern. [alt] trifft zu, wenn ein Attribut vorhanden ist, selbst wenn sein Wert leer ist. input[type="email"] verlangt den exakten Attributwert.

MusterBedeutung
[href^="https"]Wert beginnt mit https
[href$=".pdf"]Wert endet mit .pdf
[href*="example"]Wert enthält example
[class~="note"]Eine durch Leerzeichen getrennte Liste enthält das Wort note
`[lang="en"]`

Ergänze i vor der schließenden Klammer, um die Groß- und Kleinschreibung zu ignorieren, wie in a[href$=".pdf" i]. Der Selektor erfasst dann auch einen Link, der auf .PDF endet. Die Suche nach einem ganzen Wort verhindert, dass note versehentlich auf ein längeres Klassenwort wie notebook zutrifft.

Einen Zustand oder eine Position auswählen

Eine Pseudoklasse verwendet einen Doppelpunkt: :hover, :focus, :checked oder :disabled. :focus-visible wählt ein fokussiertes Element aus, wenn der Browser entscheidet, dass ein sichtbarer Indikator nötig ist, häufig bei der Tastaturnavigation.

Ein Link kann zugleich besucht sein und sich unter dem Zeiger befinden. Schreibe bei konkurrierenden Regeln mit derselben Spezifität die Linkzustände in dieser Reihenfolge: :link, :visited, :focus, :hover, :active. Andernfalls würde sich bei einem besuchten Link eine spätere Regel für die Farbe besuchter Links gegen eine frühere Regel für die Farbe beim Überfahren durchsetzen. Zum Schutz der Privatsphäre beschränken Browser :visited auf bestimmte Farbänderungen; die Strichstärke lässt sich damit nicht festlegen und Transparenz kann den Besuchsverlauf nicht offenlegen.

Strukturelle Pseudoklassen zählen Geschwisterelemente. :first-child bezeichnet das erste Kindelement seines Elternelements. In <article><h2>News</h2><p>Update</p></article> trifft p:first-child auf nichts zu. p:first-of-type trifft dagegen auf diesen Absatz zu.

:nth-child(3) wählt das dritte Kindelement aus. odd wählt die Positionen 1, 3, 5; even wählt 2, 4, 6. Beginne bei :nth-child(3n+1) mit n = 0, dann 1, 2 und 3: Die passenden Positionen sind 1, 4, 7 und 10. li:not(:last-child) schließt den letzten Eintrag aus und eignet sich daher für Trennlinien nur zwischen Einträgen.

Einen Teil gestalten oder einen Hinweis hinzufügen

Ein Pseudoelement verwendet zwei Doppelpunkte. ::first-line und ::first-letter gestalten Textteile; ::marker gestaltet Listenzeichen, ::placeholder den Hinweis eines Feldes und ::selection markierten Text. Die älteren Formen mit einem Doppelpunkt für before, after, first-line und first-letter funktionieren weiterhin.

.required::after {
  content: " *";
  color: crimson;
}

::after erzeugt Inhalt innerhalb des ausgewählten Elements nach dessen vorhandenem Inhalt. ::before erzeugt ihn davor. Beide brauchen einen content-Wert; selbst content: "" erzeugt eine dekorative Box. Wesentlicher Text gehört ins HTML, wo er tatsächlicher Dokumentinhalt bleibt. Verwende diese Pseudoelemente für Dekoration oder kleine Hinweise, da sich generierter Text nicht so zuverlässig auswählen oder kopieren lässt wie HTML-Text.

Wichtige Erkenntnisse

  • Attributoperatoren unterscheiden zwischen Vorhandensein, exakten Werten, Textfragmenten und ganzen Wörtern.
  • Eine Pseudoklasse wählt einen Zustand oder eine Position aus; ein Pseudoelement gestaltet einen Teil oder generierten Inhalt.
  • :first-child zählt alle Geschwisterelemente, während :first-of-type denselben Elementtyp zählt.
  • Linkzustände können sich überschneiden, daher brauchen konkurrierende Zustandsregeln eine bewusste Reihenfolge.
  • ::before und ::after brauchen content; wesentliche Informationen gehören ins HTML.

2.3 Beziehungen im HTML-Baum

HTML-Elemente bilden einen Baum. Ein Element direkt innerhalb eines anderen ist dessen Kindelement; jedes darin verschachtelte Element ist ein Nachfahrenelement. Elemente mit demselben Elternelement sind Geschwisterelemente. Ein Kombinator verbindet Selektoren über eine dieser Beziehungen.

Der Beziehung zum Zielelement folgen
KombinatorBeispielZielelement
Leerzeichennav aJeder Link an beliebiger Stelle innerhalb eines nav
>.menu > liEin li direkt innerhalb von .menu
+h2 + pEin Absatz unmittelbar nach einem h2 mit demselben Elternelement
~h2 ~ pJeder spätere Absatz, der ein Geschwisterelement eines h2 ist

Der äußerste rechte Teil benennt das Element, das die Deklarationen erhält. h2 + p gestaltet den Absatz, nicht die Überschrift. Beide Geschwisterkombinatoren suchen unter den Geschwisterelementen nach vorn; keiner wählt ein Elternelement oder ein vorheriges Geschwisterelement aus.

Eine verschachtelte Liste nachvollziehen
<ul class="menu">
  <li>Guides</li>
  <li>Topics
    <ul>
      <li>Typography</li>
    </ul>
  </li>
</ul>

.menu li trifft auf alle drei Listeneinträge zu, weil alle drei Nachfahrenelemente der äußeren Liste sind. .menu > li trifft nur auf „Guides“ und „Topics“ zu: Ihr Elternelement ist die Liste mit der Klasse menu. Das Elternelement von „Typography“ ist das innere ul, das diese Klasse nicht trägt.

Dieser Unterschied ist wichtig, wenn Einträge der obersten Ebene einen großen Innenabstand brauchen, verschachtelte Einträge aber kompakte Abstände. Ein Nachfahrenselektor erreicht jede Tiefe, sofern keine weitere Bedingung die Auswahl einschränkt.

Nachfolgende Geschwisterelemente nachvollziehen
<article>
  <h2>Opening hours</h2>
  <p>Visit in the morning.</p>
  <aside>Closed on holidays.</aside>
  <p>Booking is optional.</p>
</article>

h2 + p trifft auf den Absatz mit dem Hinweis zum Besuch am Vormittag zu. Der Selektor überspringt das aside nicht, um einen weiteren Absatz zu finden. h2 ~ p trifft auf beide Absätze zu, weil beide auf die Überschrift folgen und dasselbe Elternelement haben. Läge ein Absatz innerhalb des aside, wäre er kein Geschwisterelement der Überschrift und würde deshalb auf keinen der beiden Selektoren passen.

Beziehungen kombinieren, ohne zu viel auszuwählen

.sidebar > ul a:hover trifft auf Links unter dem Zeiger an beliebiger Stelle innerhalb eines ul zu, dessen direktes Elternelement die Klasse sidebar hat. Lies von rechts: ein Link unter dem Zeiger; innerhalb einer Liste; diese Liste direkt innerhalb der Seitenleiste. Das Leerzeichen erlaubt Zwischenelemente zwischen der Liste und dem Link.

Kombinatoren erhöhen die Spezifität nicht. Die Element-, Klassen-, ID- und anderen Selektorteile tun das weiterhin. Lange Ketten können Regeln daher schwerer wartbar machen, obwohl die Beziehungszeichen keine Punkte beitragen: Eine Änderung der HTML-Verschachtelung kann dazu führen, dass sie nicht mehr zutreffen. Eine aussagekräftige Klasse am Zielelement, etwa .menu-link, beschreibt eine wiederverwendbare Rolle oft klarer.

Wenn eine Regel nicht zutrifft, untersuche den tatsächlichen Baum, statt sichtbare Abstände zu zählen. Zwei Elemente können auf dem Bildschirm nebeneinander erscheinen und im HTML unterschiedliche Elternelemente haben. Kommentare und Leerraum zählen für diese Kombinatoren nicht als Geschwisterelemente.

Wichtige Erkenntnisse

  • Ein Leerzeichen erreicht Nachfahrenelemente in jeder Tiefe; > erreicht direkte Kindelemente.
  • + erreicht das unmittelbar folgende Geschwisterelement; ~ erreicht spätere passende Geschwisterelemente.
  • Der äußerste rechte Selektor benennt das gestaltete Element.
  • Kombinatoren erhöhen die Spezifität nicht, aber lange Selektorketten hängen stark von der HTML-Struktur ab.
3

Ermittle die maßgebliche Deklaration

Mehrere Regeln können auf ein Element zutreffen und jeweils einen anderen Teil seines Aussehens bestimmen. Die Kaskade wählt durch eine Folge von Vergleichen für jede Eigenschaft einen Wert aus. Die Spezifität ist erst relevant, wenn Vergleiche mit höherer Priorität gleichauf liegen. Die Vererbung hilft anschließend, Textstile auf der Seite weiterzugeben, ohne für jedes Element eine Regel zu benötigen. Wenn du diese Aufgaben auseinanderhältst, kannst du eine durchgestrichene Deklaration viel leichter erklären und korrigieren.

3.1 Kaskade, Inline-Stile und Ebenen

Die Kaskade wählt für jede Eigenschaft jedes Elements eine maßgebliche Deklaration aus. Sie wählt nicht eine ganze Regel und verwirft alle anderen. Bei p { color: gray; font-size: 18px; } und .lead { color: black; } kann ein Absatz mit der Klasse lead seine Farbe aus der Klassenregel und seine Größe aus der Typregel erhalten.

In der richtigen Reihenfolge vergleichen

Entferne zuerst Deklarationen, die nicht gelten: Ihre Selektoren müssen zutreffen und alle Bedingungen erfüllt sein. Vergleiche dann Herkunft und Wichtigkeit einschließlich der Priorität der Kaskadenebene. Normale Inline-Stile des Autors haben Vorrang vor normalen Regeln in Autoren-Stylesheets. Bleiben Deklarationen bei diesen früheren Schritten gleichauf, vergleiche die Spezifität; bei weiterem Gleichstand entscheidet die Reihenfolge im Quelltext.

Herkunft normaler DeklarationenPriorität
Autor: das CSS der WebsiteHöchste dieser drei
Benutzer: eigene Stile eines LesersZwischen Autor und Browser
Browser: StandardstileNiedrigste

Bei zwei gleichrangigen .button-Regeln, die unterschiedliche Hintergrundfarben festlegen, entscheidet die Reihenfolge: Die spätere gewinnt. Auch später im HTML eingebundene Stylesheets stehen bei diesen Gleichständen später. Dass eine Datei schneller über das Netzwerk ankommt, macht sie in der Kaskade nicht später.

Wichtigkeit verstehen, bevor du sie ergänzt

Eine Inline-Deklaration wie style="color: purple;" setzt sich gegen normale Selektoren in Autoren-Stylesheets durch, auch gegen Selektoren mit IDs. Eine Deklaration mit !important in einem Autoren-Stylesheet kann sich gegen diese normale Inline-Deklaration durchsetzen.

<p class="note" style="color: purple;">Check the time.</p>
p { color: gray !important; }
.note { color: blue; }

Der Absatz ist grau. Die Wichtigkeit wird vor der Selektorspezifität und dem Vorteil normaler Inline-Stile verglichen. Hat auch die Inline-Farbe !important, gewinnt diese wichtige Inline-Deklaration gegen die wichtige Regel im Autoren-Stylesheet.

Für wichtige Deklarationen kehrt sich die Priorität der Herkünfte um: Wichtige Browserdeklarationen haben Vorrang vor wichtigen Benutzerdeklarationen, die wiederum Vorrang vor wichtigen Autorendeklarationen haben. Das schützt Regeln, die Leser oder Browser durchsetzen müssen. Innerhalb einer Herkunft stehen Inline- und Ebenenpriorität weiterhin vor Spezifität und Quelltextreihenfolge.

Wer !important für jeden Konflikt einsetzt, macht das Überschreiben zunehmend schwer. Bevorzuge einen einfacheren Selektor oder eine bewusste Reihenfolge. Das Überschreiben von Drittanbieterregeln, die du nicht bearbeiten kannst, kann eine wichtige Deklaration rechtfertigen; sie sollte eine überlegte Ausnahme sein.

Regeln in Kaskadenebenen gruppieren
@layer reset, base, components;
@layer base {
  p { margin: 0 0 1rem; }
}

Dies deklariert die Reihenfolge der Ebenen vor ihren Regeln. Bei normalen Deklarationen setzen sich spätere Ebenen unabhängig von der Selektorspezifität gegen frühere durch. Normale Regeln außerhalb jeder Ebene setzen sich gegen normale Regeln innerhalb von Ebenen durch. Eine Komponentenregel mit niedriger Spezifität kann daher eine Basisregel mit hoher Spezifität überschreiben, ohne IDs hinzuzufügen.

Bei wichtigen Deklarationen kehrt sich diese Ebenenreihenfolge um: Frühere Ebenen setzen sich gegen spätere durch und wichtige Deklarationen innerhalb von Ebenen gegen wichtige Deklarationen außerhalb von Ebenen. Diese Umkehr erhält wichtige Schutzregeln in grundlegenden Ebenen. Ermittle bei einem Konflikt zuerst die maßgebliche Herkunft, Wichtigkeit und Ebenengruppe, bevor du Selektorteile zählst.

Wichtige Erkenntnisse

  • Die Kaskade wählt Deklarationen für jede Eigenschaft einzeln aus.
  • Herkunft, Wichtigkeit, Inline-Priorität und Ebenenpriorität stehen vor der Spezifität.
  • Normale Inline-Stile des Autors setzen sich gegen normale Regeln in Autoren-Stylesheets durch.
  • !important ändert die Priorität; es erhöht nicht die Spezifität.
  • Bei normalen Deklarationen haben spätere Ebenen und Regeln außerhalb von Ebenen Vorrang; bei wichtigen Deklarationen kehrt sich die Ebenenpriorität um.
  • Die Reihenfolge im Quelltext entscheidet zwischen Deklarationen erst, wenn frühere Vergleiche gleichauf liegen.

3.2 Spezifität ohne Rätselraten

Die Spezifität misst das Gewicht, mit dem ein Selektor Elemente auswählt. Vergleiche sie nur bei Deklarationen, die in den früheren Schritten der Kaskade einschließlich Herkunft, Wichtigkeit, Ebenen- und Inline-Priorität noch gleichauf liegen.

Drei Spalten zählen

Schreibe die Spezifität als ID-CLASS-TYPE, zum Beispiel 0-1-1.

SpalteZähle jeweils
IDID-Selektoren wie #menu
CLASSKlassen, Attributselektoren und gewöhnliche Pseudoklassen
TYPETypselektoren und Pseudoelemente

Der Universalselektor * und Kombinatoren tragen nichts bei. Zähle bei a[href^="https"]:focus keine IDs, zwei CLASS-Teile (das Attribut und :focus) und einen TYPE-Teil (a). Das Ergebnis ist 0-2-1.

Weitere Beispiele: .nav a ergibt 0-1-1; ul li a:hover ergibt 0-1-3; #main .card > h2 ergibt 1-1-1; article p::first-line ergibt 0-0-3. Ein Pseudoelement zählt zu den Typen, obwohl sein Name mit Doppelpunkten beginnt.

Von links vergleichen

Vergleiche zuerst die IDs. Bei Gleichstand vergleiche CLASS; herrscht auch dort Gleichstand, vergleiche TYPE. Nur bei gleichen Tripeln entscheidet die Quelltextreihenfolge. Es handelt sich um getrennte Anzahlen, nicht um Ziffern einer Dezimalzahl: 0-11-0 unterliegt weiterhin 1-0-0. Zusätzliche Klassen lassen sich nicht zu einer ID übertragen.

<nav id="site-nav">
  <a class="active" href="/">Home</a>
</nav>
#site-nav a { color: white; }
nav a.active { color: orange; }
.active { color: yellow; }

Angenommen, dies sind normale Deklarationen in derselben Autorenebene. Ihre Werte sind 1-0-1, 0-1-2 und 0-1-0. Die erste gewinnt, der Link ist also weiß. Ihre ID-Spalte entscheidet den Vergleich, bevor die Anzahl der Klassen oder Typen eine Rolle spielt.

#site-nav .active würde mit 1-1-0 gewinnen, aber ein klassenbasiertes Design lässt sich leichter erweitern: .site-nav a kann den Basisstil liefern und .site-nav .active den aktiven Link ändern. So bleibt die Spezifität niedrig und recht gleichmäßig.

Die funktionalen Ausnahmen kennen

:is(), :not() und :has() tragen für die Funktion selbst kein Gewicht bei. Ihr spezifischstes Argument liefert das Gewicht. Daher ergibt li:not(.done) den Wert 0-1-1 und :is(#intro, p) a den Wert 1-0-1. Zähle den spezifischsten Selektor in der Argumentliste, nicht den, der dem Element optisch am nächsten steht.

:where() und alles darin tragen immer null bei. :where(#main) p ergibt daher 0-0-1. Das ist nützlich für Standardstile, die sich leicht überschreiben lassen sollen.

Der Abstand zu einem Vorfahrenelement zählt nicht. body h1 und html h1 ergeben beide 0-0-2, sodass bei ihrem Gleichstand eine spätere Deklaration gewinnt. Inline-Stile werden vor der Selektorspezifität behandelt und !important gehört zur Wichtigkeit. Keines von beiden ist ein weiterer gewöhnlicher Selektorteil, der zum Tripel addiert wird.

Wichtige Erkenntnisse

  • Zähle IDs, dann Klassen, Attribute und Pseudoklassen, dann Typen und Pseudoelemente.
  • Vergleiche Tripel Spalte für Spalte; eine niedrigere Spalte kann eine höhere nicht aufwiegen.
  • Kombinatoren und * tragen null bei.
  • :is(), :not() und :has() übernehmen ihr spezifischstes Argument; :where() trägt null bei.
  • Der Abstand zu einem Vorfahrenelement beeinflusst die Spezifität nicht.

3.3 Vererbte Werte und bewusstes Zurücksetzen

Durch Vererbung kann ein Kindelement einen Wert von seinem Elternelement erhalten, wenn die Eigenschaft normalerweise vererbt wird und keine Deklaration dem Kindelement einen anderen Wert zuweist. Deshalb kann eine einzige body-Regel Textfarbe und Schriftart für einen großen Teil einer Seite festlegen.

Vererbte Texteigenschaften von Boxeinstellungen unterscheiden

Die meisten Texteigenschaften werden vererbt: color, Schrifteigenschaften, line-height, letter-spacing, text-align und text-transform. Listenstile und visibility werden ebenfalls vererbt. Boxeigenschaften wie Außenabstand, Innenabstand, Rahmen, Breite, Höhe, Hintergründe, display und box-sizing werden nicht vererbt.

body { color: #222222; font-family: Georgia, serif; }
h1, h2 { font-family: Arial, sans-serif; }
footer { color: #666666; }

Gewöhnlicher Fließtext erscheint dunkelgrau in Georgia. Überschriften erhalten ihre direkt zugewiesene Schriftfamilie und behalten die vererbte Farbe. Der Text im Fußbereich erbt Georgia, während seine Farbe dort geändert wird.

Ein transparenter Hintergrund des Kindelements lässt den Hintergrund des Elternelements durchscheinen; das bedeutet nicht, dass das Kindelement die Hintergrundfarbe geerbt hat. Ebenso erhalten Kindelemente einer umrahmten Box nicht automatisch eigene Rahmen.

Direkte Zuweisungen setzen sich gegen vererbte Werte durch

Bei #content { color: red; } und p { color: blue; } ist ein Absatz innerhalb des Inhaltsbereichs blau. Die Spezifität der ID konkurriert nicht mit der Absatzregel, weil die Deklarationen auf unterschiedliche Elemente zielen. Dem Absatz ist bereits direkt eine Farbe zugewiesen, sodass er das vererbte Rot nicht benötigt.

Kindelemente erben im Allgemeinen berechnete Werte. Hat ein Abschnitt font-size: 20px und sein Kindelement font-size: 0.8em, ergibt sich für dieses Kindelement 16px. Ein Absatz darin erbt 16px; er multipliziert nicht erneut mit 0.8. Eine einheitenlose Zeilenhöhe ist nützlich, weil der vererbte Wert ein Faktor für die eigene Schriftgröße jedes Kindelements bleibt.

Die Bedeutung des Zurücksetzens wählen
SchlüsselwortWirkung
inheritDen berechneten Wert des Elternelements übernehmen
initialDen Anfangswert der CSS-Eigenschaft verwenden
unsetEine vererbte Eigenschaft erben; eine nicht vererbte auf den Anfangswert setzen
revertDie Stile der aktuellen Herkunft zurücknehmen
revert-layerDie Stile der aktuellen Kaskadenebene zurücknehmen

Bei Autoren-CSS lässt revert die Gestaltung aus der Benutzer- oder Browserherkunft zum Zuge kommen. Der Unterschied ist bei einem div relevant: display: initial ergibt den Anfangswert inline der Eigenschaft, während display: revert die übliche Browserdarstellung block wiederherstellt. Ein Anfangswert gehört zur CSS-Eigenschaft; ein Browserstandard kann vom HTML-Element abhängen.

inherit funktioniert auch bei einer Eigenschaft, die normalerweise nicht vererbt wird, etwa border: inherit. button, input { font: inherit; } ersetzt die direkt zugewiesenen Schriftarten der Steuerelemente durch die Schrift ihres Elternelements. all: unset setzt fast jede Eigenschaft zugleich zurück und entfernt damit auch nützliches eingebautes Aussehen.

Eine scheinbare Ausnahme ist eine Unterstreichung. text-decoration wird nicht vererbt, aber die Unterstreichung eines Elternelements wird durch seine Inline-Nachfahrenelemente gezeichnet. text-decoration: none auf einem verschachtelten span kann die Linie des Elternelements nicht entfernen. Entferne sie vom Elternelement und wende sie nur auf den Text an, der sie tragen soll.

Wichtige Erkenntnisse

  • Die meisten Texteigenschaften werden vererbt; Boxeigenschaften im Allgemeinen nicht.
  • Ein direkt zugewiesener Wert des Kindelements hat Vorrang vor einem vererbten Wert des Elternelements.
  • initial bezeichnet den CSS-Anfangswert; revert kann Browserstandardwerte für Elemente wiederherstellen.
  • unset wählt je nach Eigenschaft Vererbung oder Zurücksetzen auf den Anfangswert.
  • revert-layer nimmt die aktuelle Ebene aus der Entscheidung über diese Eigenschaft heraus.
  • Eine Unterstreichung des Elternelements wird durch Inline-Nachfahrenelemente gezeichnet, ohne vererbt zu werden.
4

Gib Farben an und wähle geeignete Einheiten

CSS-Werte brauchen neben einer gültigen Schreibweise eine eindeutige Bedeutung. Eine Farbe lässt sich mit einem Namen, Kanalwerten oder einem Farbton angeben; Transparenz verändert, was Leser schließlich sehen. Eine Länge kann sich nach Text, einem Container oder dem Browserfenster richten. Lerne die Bezugsgröße jeder Einheit kennen und berechne den Wert, bevor du ihn im Browser prüfst. Diese Entscheidungen helfen, Stile lesbar zu halten, wenn sich Inhalte und Lesereinstellungen ändern.

4.1 Farbwerte, Alphawert und Kontrast

color legt die Textfarbe fest. Auch Hintergründe, Rahmen, Konturen, Textdekorationen und Schatten akzeptieren Farbwerte. Dieselbe Farbe lässt sich in mehreren Formen angeben; wähle eine Schreibweise, die die beabsichtigte Änderung leicht verständlich macht.

Namen und hexadezimale Kanäle lesen

CSS kennt etwa 150 benannte Farben, darunter navy, tomato und rebeccapurple. Namen sind für schnelle Versuche praktisch, ihre alltägliche Bedeutung kann aber überraschen: green ist #008000, während leuchtendes reines Grün lime oder #00ff00 ist. Genaue Werte beseitigen diese Unsicherheit.

Eine sechsstellige hexadezimale Farbangabe hat drei Kanalpaare: Rot, Grün und Blau. Jedes Paar reicht von 00 bis ff, entsprechend 0 bis 255. Überall null ergibt Schwarz; überall der Höchstwert ergibt Weiß. Gleiche Paare erzeugen ein Grau, wie in #808080.

Dreistellige Hexadezimalangaben verdoppeln jede Ziffer: #f0a wird zu #ff00aa. Es werden keine Nullen ergänzt. Eine Farbe wie #1e90ff lässt sich nicht verkürzen, weil nicht jedes Paar seine Ziffer wiederholt. Große und kleine Hexadezimalbuchstaben bedeuten dieselben Werte.

Um ein Paar umzurechnen, multipliziere seine erste Ziffer mit 16 und addiere die zweite. Die Buchstaben a bis f stehen für 10 bis 15. Bei #1e90ff ergibt 1e den Wert 30, 90 den Wert 144 und ff den Wert 255. Die entsprechende RGB-Schreibweise ist rgb(30 144 255). Älterer Code kann Kommas oder rgba() verwenden; diese Formen funktionieren weiterhin.

Farbton oder Transparenz beschreiben

hsl() gibt Farbton, Sättigung und Helligkeit an. Der Farbton ist ein Winkel: 0 oder 360 ist Rot, 120 Grün und 240 Blau. Die Sättigung reicht von Grau bei 0 % bis zur vollen Farbe bei 100 %. Die Helligkeit reicht von Schwarz bei 0 % bis Weiß bei 100 %. Ein reiner Farbton hat 100 % Sättigung und 50 % Helligkeit, wie in hsl(0 100% 50%). Änderst du nur die Helligkeit, entstehen verwandte dunkle und blasse Varianten.

Ein Alphawert folgt auf einen Schrägstrich: rgb(0 0 0 / 0.6) ist Schwarz mit 60 % Deckkraft. Null ist vollständig transparent und eins vollständig deckend. Achtstellige Hexadezimalangaben ergänzen ein Alphapaar: #00000080 enthält 128 von 255, also etwa 50 % als Alphawert. transparent ist vollständig transparent.

.notice {
  color: white;
  background-color: rgb(0 0 0 / 0.6);
}

Hier ist nur der Hintergrund teilweise transparent. opacity: 0.6 würde dagegen das ganze Element einschließlich Text und Kindelementen transparent machen. Dieser Unterschied ist wichtig, wenn du deckenden, lesbaren Text auf einer getönten Fläche möchtest.

Farbe wiederverwenden und das Ergebnis prüfen

currentColor bezeichnet die eigene Textfarbe des Elements. Bei color: #0055aa; border: 2px solid currentColor; folgt der Rahmen der Textfarbe. Änderst du die Textfarbe, ändert sich auch dieser Rahmen, ohne dass du einen Farbwert wiederholen musst.

WCAG 2.2 Stufe AA verlangt mindestens 4,5:1 Kontrast für normalen Text und 3:1 für großen Text, etwa 24px oder etwa 18,5px bei Fettschrift. #767676 auf Weiß erreicht etwa 4,54:1; #999999 auf Weiß erreicht etwa 2,85:1 und verfehlt beide Schwellenwerte. Prüfe das tatsächliche Vordergrund-Hintergrund-Paar einschließlich der Wirkung von Transparenz mit einem Kontrastprüfer oder den Farbwerkzeugen des Browsers.

Wichtige Erkenntnisse

  • Hexadezimale Farbangaben kodieren Rot, Grün und Blau; die dreistellige Form wiederholt jede Ziffer.
  • rgb() gibt Kanäle an, während hsl() Farbton, Sättigung und Helligkeit angibt.
  • Der Alphawert einer Hintergrundfarbe beeinflusst diese Farbe; opacity macht das ganze Element transparent.
  • currentColor folgt der Textfarbe des Elements.
  • Normaler Text braucht nach WCAG AA mindestens 4,5:1 Kontrast; großer Text braucht 3:1.

4.2 Pixel und relative Längen

Eine Länge verbindet eine Zahl mit einer Einheit, etwa 16px oder 1.5rem. Dazwischen steht kein Leerzeichen. Eine Breite ungleich null braucht eine Einheit: width: 300; ist ungültig. Bei null kann die Einheit entfallen. Manche Eigenschaften erwarten ausdrücklich reine Zahlen, darunter line-height: 1.5, opacity: 0.8 und font-weight: 700.

Die Einheit ihrer Bezugsgröße zuordnen
EinheitBezugsgröße
pxEin CSS-Referenzpixel
em in font-sizeDie Schriftgröße des Elternelements
em bei Abständen und anderen LängenDie eigene Schriftgröße des Elements
remDie Schriftgröße des Wurzelelements
%Eine durch die Eigenschaft bestimmte Bezugsgröße
vw, vhBreite oder Höhe des Viewports
chDie Breite des Nullzeichens der Schrift

Ein CSS-Pixel ist nicht unbedingt ein physischer Bildpunkt. Bildschirme mit hoher Pixeldichte können für ein CSS-Pixel mehrere Gerätepixel verwenden. Zu den festen Einheitenbeziehungen gehören 1in = 96px = 2,54cm und 1pt = 1/72in. Damit entsprechen 12pt genau 16px und 1cm ungefähr 37,8px. Diese Umrechnungen garantieren nicht auf jedem Bildschirm ein physisches Maß.

Schriftbezogene Werte berechnen

Angenommen, ein Elternelement hat eine Schriftgröße von 16px und sein Kindelement hat font-size: 1.25em; padding: 2em;. Berechne zuerst die Schriftgröße: Das 1,25-Fache von 16px ergibt 20px. Der Innenabstand verwendet dann die eigene Größe des Kindelements, sodass 2 mal 20px auf jeder Seite 40px ergeben.

Verschachtelte em-Schriftgrößen können sich vervielfachen. Bei li { font-size: 1.25em; } ergeben drei verschachtelte Ebenen ausgehend von 16px die Größen 20px, 25px und 31,25px. 1.25rem ergibt dagegen auf jeder Ebene 20px, wenn das Wurzelelement 16px hat.

Lässt du die Größe des Wurzelelements auf dem Browserstandard oder legst sie als Prozentangabe fest, reagiert relative Textgröße darauf, wenn Leser diesen Standard ändern. Ein fester Wert html { font-size: 16px; } überschreibt diese Einstellung. Ein praktisches Muster ist rem für die Schriftgröße und em für den Innenabstand einer Schaltfläche, sodass ihr Abstand mit ihrem eigenen Text wächst.

Prozentangaben und den Viewport prüfen

Die Eigenschaft bestimmt die Bezugsgröße einer Prozentangabe. Ein umschließender Block liefert eine Bezugsgröße für die Boxgröße; in diesen Beispielen im normalen Dokumentfluss ist das meist der Inhaltsbereich des Elternelements. Ein Kindelement mit width: 40% in einem 600px breiten umschließenden Block ist vor einem möglichen Innenabstand oder Rahmen im content-box-Modell 240px breit. font-size: 150% verwendet die Schriftgröße des Elternelements. Selbst prozentuale obere und untere Innen- und Außenabstände beziehen sich auf die Breite des umschließenden Blocks, nicht auf seine Höhe.

1vw ist 1 % der Viewport-Breite; 1vh ist 1 % der Viewport-Höhe. In einem Viewport mit 1280 mal 800 CSS-Pixeln sind 50vw gleich 640px und 10vh gleich 80px. 100vw kann die Breite der Scrollleiste einschließen und horizontalen Überlauf erzeugen, wo 100% des Elternelements passen würden.

max-width: 65ch gibt einer Textspalte eine schriftbezogene Breite. Das ist ein ungefährer Anhaltspunkt für die Leselänge und keine Zusage, dass jede Zeile genau 65 Zeichen hat.

Einheiten mit einer Berechnung kombinieren

width: calc(100% - 40px); zieht einen festen Betrag von einer relativen Größe ab. Setze Leerzeichen um + und -; calc(100%-40px) ist ungültig. Browser berechnen schriftbezogene Längen in Pixeln, während Prozentangaben zur Containergröße bei der Layoutberechnung aufgelöst werden. Die Entwicklerwerkzeuge zeigen die resultierenden Größen, sodass du sowohl die Bezugsgröße als auch die Rechnung prüfen kannst.

Wichtige Erkenntnisse

  • Schreibe Zahlen direkt an ihre Einheiten; null kann allein stehen.
  • em bezieht sich bei der Schriftgröße auf das Elternelement und bei anderen Längen auf das Element selbst.
  • rem richtet sich nach dem Wurzelelement und vermeidet die Vervielfachung verschachtelter Schriftgrößen.
  • Die Bezugsgröße von Prozentangaben hängt von der Eigenschaft ab; prozentualer Innenabstand bezieht sich auf die Containerbreite.
  • Viewport-Einheiten richten sich nach dem Fenster; ch richtet sich nach der Schrift.
  • Setze innerhalb von calc() Leerzeichen um Addition und Subtraktion.
5

Miss Boxen und steuere Abstände

Jedes sichtbare Element nimmt als Box Platz ein. Die angegebene Breite kann nur den Inhalt oder die gesamte Box einschließlich Rahmen beschreiben; Außenabstände fügen eine weitere Abstandsschicht außerhalb hinzu. Der Anzeigetyp verändert, welche Größen- und Abstandseigenschaften wirken. Lerne, eine Box zu berechnen, bevor du ihre Maße änderst, und erkläre dann häufige Überraschungen wie eine überlaufende Karte mit voller Breite, einen Inline-Link, der die Breite ignoriert, oder zwei vertikale Außenabstände, die zusammenfallen.

5.1 Inhalt, Innenabstand, Rahmen und Außenabstand

Von innen nach außen hat eine Box Inhalt, Innenabstand, Rahmen und Außenabstand. Der Inhalt enthält Text, Bilder oder Kindelemente. Der Innenabstand schafft Platz um diesen Inhalt. Der Rahmen umgibt den Innenabstand; der Außenabstand trennt die Box einschließlich Rahmen von ihren Nachbarn.

Ein Hintergrund füllt Inhalt und Innenabstand und reicht bis unter den Rahmen, färbt aber nie den Außenabstand. Verwende Innenabstand, wenn der Platz Teil einer farbigen Karte sein soll. Verwende Außenabstand für Platz außerhalb. Außenabstände können negativ sein; Innenabstände nicht.

Die Kurzschreibweisen für Abstände lesen

margin, padding und border-width akzeptieren ein bis vier Werte:

WerteFestgelegte Seiten
10pxAlle vier
10px 20pxOben/unten, dann links/rechts
10px 20px 30pxOben, links/rechts, unten
10px 20px 30px 40pxOben, rechts, unten, links

Die Reihenfolge bei vier Werten verläuft von oben im Uhrzeigersinn. Verwende Einzeleigenschaften wie padding-left, um nach der Kurzschreibweise nur eine Seite zu ändern. Lies den zweiten Wert einer Form mit zwei Werten nicht als unten: Er legt beide horizontalen Seiten fest.

Die Inhaltsbox im Standardmodell berechnen
.card {
  width: 300px;
  padding: 20px;
  border: 5px solid;
  margin: 10px;
}

Der Anfangswert von box-sizing ist content-box. Die angegebene Breite von 300px umfasst nur den Inhalt. Addiere zweimal 20px Innenabstand und zweimal 5px Rahmen: Die Box einschließlich Rahmen ist 350px breit. Addiere die beiden Außenabstände von je 10px, um 370px horizontalen Platz zu erhalten.

Die Höhe funktioniert bei ausdrücklicher Größenangabe genauso, aber Text braucht oft eine Box, die wachsen kann. Lässt du height: auto stehen, vermeidest du, veränderlichen Inhalt in einer festen Höhe einzuschließen.

Innenabstand und Rahmen in die Breite einbeziehen

Mit box-sizing: border-box schließt dieselbe angegebene Breite Innenabstand und Rahmen ein. Die Box einschließlich Rahmen bleibt 300px breit; ziehe 40px Innenabstand und 10px Rahmen ab, um einen Inhaltsbereich von 250px zu erhalten. Außenabstände bleiben außerhalb und ergeben 320px horizontalen Platz.

Ein verbreiteter CSS-Reset wendet dieses Modell auf Elemente und ihre generierten Teile an:

*, *::before, *::after { box-sizing: border-box; }

box-sizing wird nicht automatisch vererbt, daher wählt die Regel die Boxen direkt aus.

An einem Kindelement mit voller Breite lässt sich der Unterschied gut erkennen. In einem 600px breiten Container ergibt width: 100%; padding: 0 20px; bei Größenberechnung mit content-box eine Box einschließlich Rahmen von 640px, noch ohne einen Rahmen. Bei Größenberechnung mit border-box schließt dieselbe angegebene Breite von 600px den Innenabstand ein und passt in den Container.

Inhalt passend unterbringen

min-height legt eine untere Schranke fest und erlaubt zugleich Wachstum. max-width: 800px lässt einen Block mit automatischer Breite in einem schmalen Container schrumpfen und verhindert zugleich, dass er breiter als 800px wird.

Überschreitet Inhalt eine feste Box, steuert overflow das Ergebnis: visible lässt ihn herausragen, hidden schneidet ihn ab, scroll fordert Scrollleisten an und auto ermöglicht bei Bedarf das Scrollen. pre { overflow: auto; } gibt einer langen Codezeile einen eigenen scrollbaren Bereich. Abschneiden ist eine schlechte Lösung für Text, den Leser noch brauchen; prüfe zuerst, ob die feste Größe nötig ist.

Vergleiche mit dem Boxdiagramm im Bereich für berechnete Stile die Werte des Browsers für Inhalt, Innenabstand, Rahmen und Außenabstand mit deiner Rechnung.

Wichtige Erkenntnisse

  • Der Innenabstand liegt innerhalb des Rahmens; der Außenabstand liegt außerhalb und bleibt transparent.
  • Die content-box-Breite schließt Innenabstand und Rahmen aus.
  • Die border-box-Breite schließt Innenabstand und Rahmen ein, aber nie den Außenabstand.
  • Kurzschreibweisen für Abstände verlaufen von oben im Uhrzeigersinn; kürzere Formen fassen Seiten zusammen.
  • Verwende flexible Höhen und Größenbeschränkungen, damit veränderlicher Inhalt Platz findet.
  • overflow steuert Inhalt, der die Box überschreitet.

5.2 Anzeigetyp, Zentrierung und zusammenfallende Außenabstände

Der Anzeigetyp bestimmt, wie sich eine Box in ihre Umgebung einfügt. Ein Block beginnt normalerweise eine neue Zeile und füllt bei automatischer Breite den verfügbaren Platz. Eine gewöhnliche Inlinebox fließt innerhalb von Text und richtet ihre Größe nach ihrem Inhalt. Eine Inline-Blockbox behält die Inline-Position bei und akzeptiert zugleich ausdrücklich angegebene Maße.

Das benötigte Verhalten wählen
AnzeigetypBreite und HöheAbstandsverhalten
blockWerden angewendetAußen- und Innenabstände trennen Boxen
Gewöhnliches inlineBestimmen die Boxgröße nichtHorizontale Abstände beeinflussen benachbarten Text
inline-blockWerden angewendetVertikale und horizontale Abstände beeinflussen das umgebende Layout

Bei gewöhnlichen Inline-Elementen wie span und a haben obere und untere Außenabstände keine Wirkung. Vertikale Innenabstände und Rahmen werden gezeichnet, schieben benachbarte Zeilen aber nicht auseinander und können sie daher überdecken. Horizontale Innenabstände, Rahmen und Außenabstände nehmen dagegen Platz entlang der Zeile ein.

nav a {
  display: inline-block;
  padding: 8px 16px;
}

Diese Links bleiben in einer Zeile, während ihre Boxen mit Innenabstand vertikalen Platz reservieren. display: block würde jedem Link eine eigene Zeile geben. Bilder sind ein besonderer Inline-Fall: Sie akzeptieren Breite und Höhe. Ihre standardmäßige Ausrichtung an der Grundlinie kann darunter eine kleine Lücke für die Unterlängen von Buchstaben lassen; img { display: block; } entfernt diese Lücke.

display: none entfernt die Box und ihren Platz und sorgt dafür, dass Screenreader sie nicht vorlesen. visibility: hidden blendet sie aus und erhält dabei ihren Platz.

Eine Box oder ihren Inhalt zentrieren
.page {
  max-width: 960px;
  margin: 0 auto;
}

In einem breiteren Container wächst der Block nur bis 960px und die beiden horizontalen automatischen Außenabstände teilen den verbleibenden Platz gleichmäßig auf. Bei einem Block, der den Container ausfüllt, bleibt kein horizontaler Platz zum Aufteilen. Automatische Außenabstände zentrieren keine gewöhnliche Inlinebox und vertikale automatische Außenabstände im normalen Blockfluss werden zu null aufgelöst.

text-align: center erfüllt eine andere Aufgabe: Es zentriert Inline-Inhalt innerhalb eines Blocks. Eine zentrierte Absatzbox kann weiterhin linksbündigen Text haben; ein Absatz über die volle Breite kann zentrierten Text haben, ohne zu einer schmaleren zentrierten Box zu werden.

Zusammenfallende vertikale Außenabstände erkennen

Im normalen Blockfluss können angrenzende obere und untere Außenabstände zusammenfallen. Zwei positive Außenabstände werden zum größeren der beiden. Auf eine Überschrift mit 24px unterem Außenabstand folgt ein Absatz mit 16px oberem Außenabstand: Die Lücke beträgt 24px, nicht 40px. Horizontale Außenabstände fallen nicht zusammen.

Kombiniere bei positiven und negativen Außenabständen den größten positiven mit dem stärksten negativen: 20px und −8px ergeben 12px. Sind alle negativ, setzt sich der stärkste negative durch. Bei einer leeren Box ohne trennenden Inhalt, Höhe, Rahmen oder Innenabstand können der eigene obere und untere Außenabstand zusammenfallen.

Der obere Außenabstand eines ersten Kindelements kann auch mit dem seines Elternelements zusammenfallen, wenn kein Rahmen, Innenabstand oder vorheriger Inhalt sie trennt. Der Platz erscheint dann außerhalb des Hintergrunds des Elternelements. Ergänze am Elternelement Innenabstand oder einen Rahmen oder entferne den oberen Außenabstand des Kindelements. Unter ähnlichen Bedingungen kann der untere Außenabstand eines letzten Kindelements zusammenfallen; eine Höhe oder Mindesthöhe des Elternelements kann dies am unteren Rand verhindern.

Bei Inline-Blockboxen fallen Außenabstände nicht zusammen, ebenso wenig bei Flex- und Grid-Elementen sowie bei Boxen mit Float oder absoluter Positionierung. Ein einfaches Muster für Textabstände setzt obere Außenabstände auf null und verwendet untere Außenabstände sowie Innenabstand für Platz innerhalb von Containern.

Wichtige Erkenntnisse

  • Gewöhnliche Inlineboxen ignorieren festgelegte Breite und Höhe; Inline-Blockboxen berücksichtigen sie.
  • Automatische horizontale Außenabstände zentrieren einen schmaleren Block; text-align zentriert seinen Inline-Inhalt.
  • Angrenzende positive vertikale Außenabstände von Blöcken können zum größeren Wert zusammenfallen.
  • Innenabstand am Elternelement kann den Außenabstand eines ersten Kindelements vom Außenabstand des Elternelements trennen.
  • display: none entfernt den Platz; visibility: hidden erhält ihn.
6

Gestalte lesbaren Text und fertige Oberflächen

Schriftarten, Zeilenabstand und Linkzustände prägen, wie angenehm Leser eine Seite nutzen können. Hintergründe, Rahmen und Schatten heben anschließend ihre Boxen voneinander ab, ohne deren Bedeutung zu ändern. Erstelle Textstile mit Ersatzschriftarten, halte wesentliche Inhalte im HTML und wähle Dekoration, die den Inhalt unterstützt. Die Regeln für Boxen und Kaskade gelten weiterhin: Eine Kurzschreibweise kann eine Strichstärke zurücksetzen, ein Rahmen kann die Breite vergrößern und eine Fokus-Kontur kann einen Zustand anzeigen, ohne etwas zu verschieben.

6.1 Schriftartenlisten und Webfonts

Die Wahl einer Schriftart ist eine Präferenz mit einem Plan für den Rückfall. Auf Geräten sind unterschiedliche Schriftarten installiert, und eine heruntergeladene Schriftart kann später als der Text eintreffen. Eine Schriftartenliste hält die Seite lesbar und erhält dabei einen passenden Stil.

Eine Schriftartenliste erstellen
body {
  font-family: "Helvetica Neue", Arial, sans-serif;
  font-size: 1rem;
}

Der Browser versucht die Familiennamen der Reihe nach und verwendet eine verfügbare Schriftart. Setze Namen mit Leerzeichen in Anführungszeichen. Lass generische Schriftfamilien ohne Anführungszeichen: "sans-serif" verlangt eine Schriftart mit genau diesem Namen; sans-serif verlangt vom Browser eine passende generische Schriftart.

Zu den generischen Auswahlmöglichkeiten gehören serif, sans-serif, monospace, cursive, fantasy und system-ui. Die letzte verwendet die Schrift der Benutzeroberfläche des Systems. Häufig als websicher bezeichnete Schriftarten wie Arial, Georgia und Verdana sind verbreitet, aber nicht garantiert. Eine generische Rückfalloption gehört trotzdem ans Ende.

font-size akzeptiert Längen, Prozentangaben und Schlüsselwörter für Größen. Bei 16px für das Wurzelelement ergibt 1rem 16px und 2.5rem 40px. Relative Größen können den Einstellungen der Leser folgen.

Strichstärke, Stil und Kurzschreibweise sorgfältig festlegen

font-weight: normal entspricht 400; bold entspricht 700. Werte wie 300 und 600 fordern andere Strichstärken an, wenn die Schriftart sie bereitstellt. Fehlt eine angeforderte Strichstärke, wählt der Browser eine verfügbare oder erzeugt möglicherweise eine künstliche Fettschrift. Sind nur 400 und 700 geladen, wird bei einer Anforderung von 300 die Stärke 400 verwendet. bolder und lighter beziehen sich auf das Elternelement.

font-style: italic fordert einen kursiven Schriftschnitt an; normal entfernt diesen Stil. Die Kurzschreibweise font braucht sowohl Größe als auch Schriftfamilie:

blockquote {
  font: italic 700 1.125rem/1.6 Georgia, serif;
}

Optionaler Stil, Variante und Strichstärke stehen vor der Größe. Ein Schrägstrich fügt die Zeilenhöhe an die Größe an; die Schriftfamilie steht zuletzt. Fehlt die Größe oder Schriftfamilie, ist die Kurzschreibweise ungültig. Andere ausgelassene Schrifteinstellungen werden zurückgesetzt: font: 1rem Arial, sans-serif; setzt eine zuvor festgelegte fette Strichstärke auf normal zurück.

Eine Schriftdatei laden
@font-face {
  font-family: "Inter";
  src: url("fonts/inter-regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
body { font-family: "Inter", Arial, sans-serif; }

@font-face weist einer Datei einen CSS-Familiennamen zu. Verwende diesen deklarierten Namen in der Schriftartenliste, nicht den Dateinamen. Relative Dateipfade beginnen am Speicherort des Stylesheets. WOFF2 ist ein komprimiertes Format, das aktuelle Browser unterstützen.

Statische Schriftarten brauchen im Allgemeinen separate Dateien und Regeln für jede Strichstärke und jeden Stil. Variable Schriften können einen Bereich von Strichstärken in einer Datei enthalten. Lade die Dateien, die das Design tatsächlich verwendet. font-display: swap zeigt sofort eine Ersatzschrift an und ersetzt sie, sobald der Webfont verfügbar ist.

Ein Schriftartendienst kann einen HTML-Link und die Deklaration der Schriftfamilie bereitstellen; die Bereitstellung auf dem eigenen Server vermeidet eine Schriftanfrage an einen Drittanbieterserver. Prüfe, ob die Schriftlizenz die Verwendung auf Websites erlaubt. Sieht die Schrift falsch aus, untersuche die dargestellte Schrift und die Dateianfrage. Ein falsch geschriebener CSS-Familienname führt ohne Fehlermeldung zu einer Ersatzschrift. Lesbarer Text allein zeigt daher nicht, dass die gewünschte Schrift geladen wurde.

Wichtige Erkenntnisse

  • Schreibe eine Schriftartenliste mit einer generischen Rückfalloption ohne Anführungszeichen.
  • Die Strichstärke hängt von den tatsächlich verfügbaren Schriftschnitten oder Wertebereichen ab.
  • Die Kurzschreibweise font verlangt Größe und Schriftfamilie und setzt ausgelassene Einstellungen zurück.
  • @font-face definiert einen Familiennamen und die Datei, die die Schrift bereitstellt.
  • font-display: swap hält Text in einer Ersatzschrift sichtbar, während ein Webfont lädt.

6.2 Zeilenabstand, Listen und Linkzustände

Textgestaltung muss bei Änderungen von Größe, Inhalt und Eingabemethode funktionieren. Beginne mit Zeilenabstand und lesbaren Breiten und ergänze dann Details für Listen und Links, die Lesern die Funktionsweise des Inhalts zeigen.

Die Zeilenhöhe jeder Schriftgröße folgen lassen

Verwende eine einheitenlose Zeilenhöhe wie line-height: 1.5. Bei Fließtext mit 16px erzeugt sie Zeilen mit 24px Höhe. Kindelemente erben die Zahl, sodass eine Überschrift mit 32px Zeilen mit 48px Höhe erhält. Ein Wert von 1.5em oder 150% am Elternelement wird dort dagegen zu 24px berechnet. Ein Kindelement kann diese feste Zeilenhöhe von 24px erben, selbst wenn sein eigener Text größer ist. Der Standardwert normal hängt von der Schrift ab und liegt häufig bei etwa 1,2.

body { font: 1.125rem/1.6 Georgia, serif; color: #222222; }
h1 { font: 700 2.25rem/1.2 Arial, sans-serif; }
p { max-width: 65ch; }

Bei 16px für das Wurzelelement ist der Fließtext 18px groß und hat eine Zeilenhöhe von 28,8px; die Überschrift ist 36px groß und hat eine Zeilenhöhe von 43,2px. Die Begrenzung der Absätze verhindert sehr lange Zeilen auf einem breiten Bildschirm.

text-align positioniert Inline-Inhalt innerhalb eines Blocks. Zu den Werten gehören left, right, center, justify, start und end; start und end folgen der Schreibrichtung. Die Eigenschaft verschiebt den Block selbst nicht. Blocksatz in schmalen Spalten kann große Lücken zwischen Wörtern erzeugen.

Darstellung ändern, ohne Text umzuschreiben

text-transform kann Wörter in Großbuchstaben, Kleinbuchstaben oder mit großem Anfangsbuchstaben anzeigen, ohne den HTML-Text zu ändern. letter-spacing, word-spacing und text-indent steuern verschiedene Arten von Abständen. text-shadow: 1px 1px 2px rgb(0 0 0 / 0.5); gibt horizontalen Versatz, vertikalen Versatz, Unschärfe und Farbe an.

text-decoration fügt Unterstreichungen, Überstreichungen oder Durchstreichungen hinzu. Die Eigenschaft kann auch Stil und Farbe festlegen, wie in underline wavy crimson. Stärke und Abstand der Unterstreichung erlauben eine genauere Einstellung. Leser erwarten bei unterstrichenem Text einen Link; verwende dieses Merkmal entsprechend.

Listen ohne unbeabsichtigte Einrückung gestalten

list-style-type wählt Listenzeichen wie disc, square, decimal oder lower-alpha. list-style-position: outside hält Listenzeichen außerhalb des Textblocks; inside setzt sie in die erste Zeile, sodass umgebrochene Zeilen unter dem Listenzeichen beginnen können. list-style-image stellt ein Bild als Listenzeichen bereit und li::marker kann allein das Listenzeichen färben.

Für eine einfache Navigationsliste verwende .menu { list-style: none; margin: 0; padding: 0; }. Werden nur die Listenzeichen entfernt, bleibt der standardmäßige Innenabstand der Liste an der Anfangsseite bestehen. list-style: square inside ist eine Kurzschreibweise, die Einstellungen für Listenzeichen kombiniert.

Links während der Bedienung sichtbar halten

Ordne Zustandsregeln gleicher Spezifität als Link, besucht, Fokus, Hover, aktiv. Ein Link kann zugleich besucht sein und sich unter dem Zeiger befinden; die Quelltextreihenfolge entscheidet zwischen ihren konkurrierenden Farbdeklarationen. :active bezeichnet den Zustand während der Aktivierung, nicht die aktuelle Seite.

Sorge dafür, dass Links an mehr als nur ihrer Farbe erkennbar sind, im Fließtext üblicherweise durch eine Unterstreichung. Gib dem Tastaturfokus einen deutlichen Indikator:

a:focus-visible {
  outline: 3px solid #f2a900;
  outline-offset: 2px;
}

Entferne die Fokus-Kontur nicht, es sei denn, ein anderer sichtbarer Fokusstil ersetzt sie. Eine Kontur nimmt im Boxmodell keinen Platz ein, sodass dieser Hinweis den umgebenden Text nicht verschiebt.

Wichtige Erkenntnisse

  • Eine einheitenlose Zeilenhöhe gibt einen Faktor weiter, der sich nach der eigenen Schriftgröße jedes Kindelements richtet.
  • text-align verschiebt Inline-Inhalt innerhalb eines Blocks, nicht den Block selbst.
  • Die Umwandlung der Groß- und Kleinschreibung ändert die Darstellung, ohne den HTML-Wortlaut zu ändern.
  • Das Entfernen von Listenzeichen entfernt nicht den standardmäßigen Innenabstand der Liste.
  • Linkzustände können sich überschneiden; halte Links erkennbar und den Tastaturfokus sichtbar.
  • Konturen zeigen den Fokus, ohne die Boxmaße zu ändern.

6.3 Hintergrundbilder, Skalierung und Ebenen

Ein Hintergrund liegt hinter dem Inhalt einer Box. Seine Farbe füllt Inhalt und Innenabstand und reicht bis unter den Rahmen; der Außenabstand bleibt transparent. Ein Bild wird über der Hintergrundfarbe gezeichnet, sodass eine Farbe eine verlässliche Fläche bieten kann, während das Bild lädt.

Den Pfad vom Stylesheet aus auflösen
.hero {
  background-color: #1a2b3c;
  background-image: url("../images/hero.jpg");
}

Liegt das CSS in css/styles.css und das Bild im Ordner images auf der obersten Ebene der Website, führt .. aus css heraus, bevor images betreten wird. Eine CSS-Bild-URL beginnt bei der CSS-Datei, anders als der Stylesheet-Link, der bei der HTML-Datei beginnt. Prüfe die Bildanfrage, wenn eine gültige Regel nur ihre Ersatzfarbe anzeigt.

Hintergründe sind Dekoration. Ein Screenreader gibt sie nicht als Bilder aus. Binde ein informatives Bild mit aussagekräftigem Alternativtext in HTML ein. Eine Ersatzfarbe nahe am Hauptfarbton des Bildes hilft außerdem, den Text lesbar zu halten, wenn das Bild langsam lädt oder fehlt.

Wiederholung, Skalierung und Position steuern

Bilder werden zunächst in ihrer natürlichen Größe wiederholt. no-repeat verwendet eine Kopie; repeat-x erzeugt eine Reihe und repeat-y eine Spalte. space verteilt ganze Kacheln mit Abständen, während round die Kacheln so anpasst, dass eine ganze Anzahl hineinpasst.

GrößeErgebnis
coverDie ganze Box unter Wahrung der Proportionen füllen; Beschneidung ist möglich
containDas ganze Bild unter Wahrung der Proportionen einpassen; Lücken können bleiben
200px 100pxBeide Maße ausdrücklich festlegen
50% autoRelative Breite festlegen und das Seitenverhältnis des Bildes erhalten

Bei einer Box von 800px mal 400px und einem quadratischen Bild mit 1000px Seitenlänge skaliert cover das Bild auf ein Quadrat mit 800px Seitenlänge, sodass 400px der Bildhöhe außerhalb der Box liegen. Contain skaliert es auf ein Quadrat mit 400px Seitenlänge; mit no-repeat bleiben 400px der Boxbreite unbedeckt. Contain allein schaltet die Wiederholung nicht aus.

Die Anfangsposition ist oben links. background-position: center zentriert ein Bild; right 20px bottom 10px versetzt es von diesen Rändern. Ein horizontaler Wert steht zuerst. Center zusammen mit cover hält die Mitte sichtbar, wenn ein Zuschnitt nötig ist.

Bilder erzeugen und übereinanderlegen

Ein Farbverlauf ist ein Bild und gehört daher in background-image:

background-image: linear-gradient(to right, #1e90ff, #8a2be2);

Die erste Farbe liegt links und die zweite rechts. Winkel und positionierte Farbstopps erlauben eine genauere Steuerung; radial-gradient(circle, white, steelblue) breitet sich von der Mitte nach außen aus. Ein Farbverlauf in background-color ist ungültig.

Trenne mehrere Bilder durch Kommas; das erste liegt oben. Ein halbtransparenter schwarzer Farbverlauf vor einem Foto kann das Bild abdunkeln, ohne den Text transparent zu machen.

Die Kurzschreibweise bewusst verwenden

background: url("hero.jpg") center / cover no-repeat #1a2b3c; kombiniert Bild, Position, Größe, Wiederholung und Farbe. Die Größe folgt nach einem Schrägstrich auf die Position. Nur die letzte Ebene kann eine Farbe haben. Ausgelassene Hintergrundeinstellungen werden zurückgesetzt, sodass ein späteres background: white; ein vorheriges Bild entfernt.

background-attachment verwendet zunächst scroll und bewegt sich beim Scrollen der Seite mit dem Element. fixed bindet den Hintergrund fest an den Viewport. Prüfe die tatsächliche Box und den Text, nachdem du Dekoration hinzugefügt hast; Skalierung und Zuschnitt sollten keine Informationen verbergen, die Leser brauchen.

Wichtige Erkenntnisse

  • CSS-Bildpfade werden vom Speicherort des Stylesheets aus aufgelöst.
  • cover füllt die Box und kann beschneiden; contain passt das ganze Bild ein und kann Lücken lassen.
  • Hintergrundbilder werden wiederholt, sofern die Wiederholung nicht geändert wird.
  • Farbverläufe sind Bilder und das erste Hintergrundbild wird oben gezeichnet.
  • Die Kurzschreibweise für Hintergründe verwendet einen Schrägstrich zwischen Position und Größe und setzt ausgelassene Einstellungen zurück.
  • Binde informative Bilder in HTML ein; Hintergründe dienen als Dekoration.

6.4 Rahmen, abgerundete Ecken, Konturen und Schatten

Ein Rahmen ist Teil des Boxmodells. Eine Kontur oder ein Schatten wird um die Box gezeichnet, ohne zusätzlichen Platz zu reservieren. Die Wahl zwischen ihnen verändert sowohl das Aussehen als auch das Größenverhalten eines Stils.

Einem Rahmen einen Stil geben
.note {
  border: 1px solid #cccccc;
  border-left: 4px solid crimson;
  padding-left: 12px;
}

Die Kurzschreibweise legt Breite, Stil und Farbe fest; diese Teile können in beliebiger Reihenfolge stehen. Der Rahmenstil ist zunächst none, sodass die Angabe von nur Breite und Farbe keinen sichtbaren Rahmen erzeugt. Zu den Stilen gehören solid, dashed, dotted, double, groove, ridge, inset und outset sowie none und hidden.

Fehlt die Breite, gilt medium, in aktuellen Browsern meist 3px. Fehlt die Farbe, gilt currentColor, entsprechend dem Text des Elements. Seitenkurzschreibweisen wie border-top und Einzeleigenschaften wie border-left-color erlauben eine Ausnahme nach einem allgemeinen Rahmen. Zum Beispiel entfernt border-top: none nach einer Rahmendeklaration für vier Seiten nur die obere Kante.

Bei Größenberechnung mit content-box fügt ein Rahmen von 2px auf jeder Seite jeweils 4px zu Breite und Höhe hinzu. Eine größere Rahmenbreite beim Überfahren mit dem Zeiger kann daher benachbarten Inhalt verschieben. Halte die Rahmenbreite konstant und ändere die Farbe oder verwende eine Kontur als Hinweis, der keinen Platz einnimmt. Bei Größenberechnung mit border-box nimmt ein dickerer Rahmen stattdessen mehr vom Inneren der festgelegten Box ein.

Ecken in vorhersehbarer Reihenfolge abrunden

border-radius: 8px rundet alle Ecken ab, selbst wenn der Rahmen unsichtbar ist. Bei vier Werten lautet die Reihenfolge oben links, oben rechts, unten rechts, unten links. Zwei Werte gelten für gegenüberliegende Eckpaare: der erste für oben links und unten rechts, der zweite für oben rechts und unten links.

border-radius: 50% macht eine quadratische Box kreisförmig und ein Rechteck elliptisch. Ihr eigener Hintergrund wird an dieser abgerundeten Kante abgeschnitten. Der Radius selbst schneidet überlaufende Kindelemente nicht zu; das wird gesondert über den Überlauf entschieden. Der Radius vergrößert die gemessenen Boxmaße nicht.

Eine Fokuslinie oder Tiefe hinzufügen
.link:focus-visible {
  outline: 3px solid navy;
  outline-offset: 2px;
}

Eine Kontur wird außerhalb des Rahmens gezeichnet und nimmt keinen Platz im Layout ein. Ihr Versatz erzeugt einen Abstand zum Rahmen. Sie ist ein nützlicher Fokushinweis, weil sie erscheinen kann, ohne benachbarte Boxen zu verschieben.

box-shadow: 0 2px 6px rgb(0 0 0 / 0.2); ergibt einen horizontalen Versatz von null, einen Versatz von 2px nach unten, 6px Unschärfe und eine halbtransparente schwarze Farbe. Ein optionaler Ausdehnungswert folgt auf die Unschärfe. inset zeichnet den Schatten innen; durch Kommas getrennte Werte fügen mehrere Schatten hinzu. Schatten folgen abgerundeten Ecken und nehmen keinen Platz im Boxmodell ein.

Eine fertige Karte prüfen

Eine Karte mit width: 280px; padding: 16px; border: 1px solid #dddddd; ist bei Größenberechnung mit content-box 314px breit. Addiere zweimal 16px und zweimal 1px zu 280px. Bei Größenberechnung mit border-box bleibt sie 280px breit und lässt 246px für den Inhalt. Ein Eckenradius von 12px und ein weicher Schatten ändern keine der beiden Rechnungen. Sie ändern die gezeichnete Kante, nicht die Maße, mit denen andere Boxen platziert werden.

Wichtige Erkenntnisse

  • Ein sichtbarer Rahmen braucht einen Stil wie solid.
  • Rahmen beeinflussen die Boxgröße; Konturen und Schatten reservieren keinen zusätzlichen Platz im Layout.
  • Eckenradien verlaufen von oben links im Uhrzeigersinn; kürzere Formen fassen Ecken paarweise zusammen.
  • Ein Radius von 50 % macht ein Quadrat kreisförmig und ein Rechteck elliptisch.
  • Ein Boxschatten führt horizontalen und vertikalen Versatz auf, dann optionale Unschärfe und Ausdehnung und schließlich die Farbe.

CSS-Selektoren, Kaskade und Boxmodell: Beispiele

6 Interaktive Lektionen

1

Binde ein Stylesheet ein und untersuche es

10 Schritte
Verbinde eine Seite mit CSS, vollziehe eine kleine Regel nach und untersuche eine Änderung, die nicht erscheint.
  1. 1
    EinführungVon aussagekräftigem HTML zur gestalteten Seite

    Eine Überschrift und ein Absatz haben bereits vom Browser bereitgestellte Stile. Du gibst ihnen eine ausgewählte Schriftart und Farbe und verfolgst dann das Ergebnis zurück zum CSS.

    Zuerst brauchst du eine zuverlässige Verbindung zwischen den Dateien. Danach muss eine Regel auf das Element zutreffen, eine gültige Deklaration enthalten und sich bei der betreffenden Eigenschaft durchsetzen. Prüfe diese Punkte getrennt, wenn sich die Seite nicht ändert.

  2. 2
    BeispielEine externe Datei einbinden

    Angenommen, index.html liegt neben einem Ordner namens css, der styles.css enthält. Füge dies innerhalb des HTML-head ein:

    <link rel="stylesheet" href="css/styles.css">
    

    Der Pfad beginnt bei der HTML-Datei und führt in den CSS-Ordner. Wenn du Regeln in dieser externen Datei speicherst, können andere Seiten dasselbe Design einbinden. Bei einem falsch geschriebenen Pfad kann das HTML lesbar bleiben, während keiner dieser Autorenstile geladen wird.

  3. 3
    ErklärungEine Regel schreiben und lesen

    Schreibe dies in das eingebundene Stylesheet:

    p {
      color: navy;
      font-size: 18px;
    }
    

    p wählt Absätze aus. Die Klammern enthalten zwei Deklarationen, die jeweils eine Eigenschaft mit einem Wert verbinden. Die Semikolons trennen die Deklarationen. Lade die Seite neu: Ein passender Absatz erhält marineblauen Text und eine Schriftgröße von 18px, sofern keine Deklaration mit höherer Priorität eine dieser Eigenschaften ändert.

  4. 4
    HerausforderungEinen ungültigen Wert korrigieren

    Eine Regel lautet p { font-size: 18 px; color: teal; }. Bestimme die Wirkung und korrigiere die Größendeklaration.

    ---reveal---

    Die blaugrüne Farbe kann angewendet werden, aber die Größendeklaration ist ungültig, weil Zahl und Einheit einer Länge direkt aneinanderstehen müssen. Ändere sie in font-size: 18px;. Der Browser überspringt die ungültige Deklaration, nicht den ganzen Block. Eine funktionierende Farbe belegt daher nicht, dass der Größenwert akzeptiert wurde.

  5. 5
    KernaussageErkennen, was eine Kurzschreibweise zurücksetzt

    Diese Deklarationen erhalten das Foto nicht:

    background-image: url("sky.jpg");
    background: lightblue;
    

    Die Kurzschreibweise setzt ausgelassene Hintergrundeigenschaften zurück, darunter das Bild. Schreibe zuerst eine allgemeine Kurzschreibweise und danach die Ausnahme als Einzeleigenschaft, wenn beides erhalten bleiben soll. Das erklärt eine gültig aussehende Änderung, die verschwindet, obwohl Pfad und Selektor korrekt sind.

  6. 6
    VerbindungNützliche Browserstandardstile behalten

    Große Überschriften, Absatzabstände und Listenzeichen sind aufgrund des Browser-Stylesheets bereits vorhanden. Deine Regeln ändern diesen Ausgangspunkt.

    body { margin: 0; } entfernt einen bestimmten Standardabstand. Das Zurücksetzen aller Außen- und Innenabstände entfernt auch nützliche Absatzabstände und Listeneinrückungen. Wähle die HTML-Überschriftenebene nach ihrer Bedeutung und ändere dann ihre Schriftgröße; eine niedrigere Überschriftenebene nur wegen ihres Aussehens zu wählen, verändert die Dokumentstruktur.

  7. 7
    TippEine Eigenschaft untersuchen, bevor du Vermutungen anstellst

    Klicke den Absatz mit der rechten Maustaste an und wähle Untersuchen. Suche seine Regel im Stilbereich. Eine fehlende Regel deutet auf ein Problem bei der Zuordnung oder beim Laden hin; eine Warnung deutet auf ungültiges CSS hin; eine durchgestrichene Deklaration hat in der Kaskade unterlegen.

    Der Bereich für berechnete Stile zeigt die resultierenden Werte und das Boxdiagramm. Teste dort eine Änderung und speichere sie dann in deinem Stylesheet. Eine Änderung nur in der Untersuchung ist vorübergehend und verschwindet, wenn der Browser die gespeicherten Dateien neu lädt.

  8. 8
    HerausforderungEine verbleibende Lücke in einer Liste erklären

    Eine Navigationsliste hat list-style: none, dennoch bleiben ihre Einträge eingerückt. Die Regel ist gültig und nicht durchgestrichen. Was solltest du untersuchen und ändern?

    ---reveal---

    Untersuche den Innenabstand der Liste. Das Entfernen der Listenzeichen entfernt nicht ihren standardmäßigen Innenabstand an der Anfangsseite. Setze diesen Innenabstand zurück, üblicherweise mit padding: 0, um die Einrückung zu entfernen; füge anschließend gezielt Abstand hinzu, falls das Design ihn braucht. Die Einstellung der Listenzeichen und die Boxabstände sind getrennte Eigenschaften.

  9. 9
    HerausforderungEine fehlgeschlagene Änderung zurückverfolgen

    Eine Seite zeigt für Absätze weiterhin die Standardstile. Der Netzwerkbereich meldet eine fehlgeschlagene Anfrage für styles.css, während die tatsächliche Datei css/styles.css ist. Was solltest du zuerst korrigieren und wie solltest du das Ergebnis prüfen?

    ---reveal---

    Korrigiere den Stylesheet-Link im HTML auf css/styles.css. Lade die Seite neu, prüfe, ob die Anfrage erfolgreich ist, und untersuche dann den Absatz auf seine passende Regel. Eine höhere Selektorspezifität hilft nicht, solange das Stylesheet mit diesem Selektor nicht geladen wird.

  10. 10
    ZusammenfassungEin verlässlicher Weg zur Fehlersuche

    Beginne mit einer gültigen HTML-Dokumenttypdeklaration und einem korrekt eingebundenen Stylesheet. Eine Regel braucht dann einen passenden Selektor und gültige Eigenschaftswerte. Kurzschreibweisen können frühere Einzeleigenschaften zurücksetzen, selbst wenn jede Deklaration gültig ist.

    Nutze den Netzwerkbereich für das Laden, den Stilbereich für Zuordnung und Priorität und den Bereich für berechnete Stile für die endgültigen Maße. Übertrage erfolgreiche Versuche in die CSS-Datei, damit sie beim Neuladen erhalten bleiben. Die Standardstile des Browsers gehören weiterhin zur Erklärung, wenn deine Regeln eine Eigenschaft unverändert lassen.

2

Lies Selektoren anhand des HTML-Baums

12 Schritte
Wähle wiederverwendbare Klassen, Zustände, Teile und strukturelle Beziehungen aus, ohne zusätzliche Elemente zu erfassen.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungDie beabsichtigte Auswahl beschreiben
  2. 2
    BeispielEine Klasse für mehrere Elemente wiederverwenden
  3. 3
    HerausforderungEin Leerzeichen ändert das Zielelement
  4. 4
    TippRegeln gemeinsam nutzen, ohne Verschachtelung zu verlangen
  5. 5
    ErklärungAttribute und aktuelle Zustände auswählen
  6. 6
    BeispielGeschwisterelemente zählen, nicht nur Absätze
  7. 7
    HerausforderungEin Listenzeichen auswählen, ohne Text zu ersetzen
  8. 8
    ErklärungDirekte Kindelemente in einer verschachtelten Liste finden
  9. 9
    BeispielDie beiden Geschwisterbeziehungen nachvollziehen
  10. 10
    HerausforderungDasselbe Elternelement im Blick behalten
  11. 11
    HerausforderungPosition mit Zustand kombinieren
  12. 12
    ZusammenfassungDen Selektor als Auswahltest lesen
3

Verfolge einen Konflikt von der Priorität bis zur Vererbung

13 Schritte
Ermittle maßgebliche Deklarationen, berechne die Spezifität und unterscheide lokale von vererbten Werten.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungEin Element kann mehrere maßgebliche Deklarationen haben
  2. 2
    ErklärungVor dem Vergleichen filtern
  3. 3
    BeispielEine Inline-Farbe bestimmen
  4. 4
    KernaussageEbenen vor stärkeren Selektoren nutzen
  5. 5
    HerausforderungDen entscheidenden Schritt benennen
  6. 6
    BeispielSelektorteile nach Spalten zählen
  7. 7
    ErklärungFunktionale Selektoren behandeln
  8. 8
    HerausforderungVergleichen, ohne Spalten zu addieren
  9. 9
    VerbindungText vererben lassen und Boxen getrennt halten
  10. 10
    ErklärungDas gewünschte Zurücksetzen wählen
  11. 11
    HerausforderungEin Kindelement vom Selektor seines Elternelements unterscheiden
  12. 12
    HerausforderungDie vollständige Entscheidung nachvollziehen
  13. 13
    ZusammenfassungJeder Entscheidung ihre eigene Aufgabe geben
4

Wähle eine Farbe und berechne eine relative Größe

10 Schritte
Deute Farbkanäle und Transparenz und verfolge dann die Bezugsgrößen von Schrift, Container und Viewport.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungDie Bezugsgröße hinter dem Wert erkennen
  2. 2
    BeispielDrei Farbkanäle entschlüsseln
  3. 3
    KernaussageDeckenden Text über einer halbtransparenten Füllung erhalten
  4. 4
    HerausforderungDen richtigen Schwellenwert prüfen
  5. 5
    BeispielDie Textgröße vor ihrem Abstand berechnen
  6. 6
    VerbindungWiederholtes Wachstum bei verschachteltem Text vermeiden
  7. 7
    ErklärungProzentangaben die richtige Bezugsgröße geben
  8. 8
    HerausforderungZwei verschiedene Bezugsgrößen anwenden
  9. 9
    HerausforderungSchriftgröße und Kontrast verbinden
  10. 10
    ZusammenfassungWählen, wonach sich der Wert richten soll
5

Miss eine Karte und erkläre ihre Abstände

11 Schritte
Berechne beide Boxmodelle und verfolge dann Inline-Verhalten, Zentrierung und zusammengefallene Außenabstände.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungBeim Inhalt beginnen und nach außen vorgehen
  2. 2
    ErklärungDie vier Schichten benennen
  3. 3
    BeispielEine Karte im content-box-Modell berechnen
  4. 4
    BeispielÄndern, was die Breite einschließt
  5. 5
    HerausforderungEinen Überlauf bei voller Breite beheben
  6. 6
    VerbindungEinen Link dazu bringen, Maße zu berücksichtigen
  7. 7
    BeispielDen verbleibenden horizontalen Platz aufteilen
  8. 8
    KernaussageVertikale Außenabstände zusammenfassen
  9. 9
    HerausforderungEine Lücke mit unterschiedlichen Vorzeichen bestimmen
  10. 10
    HerausforderungDie zentrierte Karte erneut berechnen
  11. 11
    ZusammenfassungDie Schicht messen, die das Problem verursacht
6

Erstelle lesbaren Text und eine fertige Karte

15 Schritte
Lege eine verlässliche Schrift fest, halte Links bedienbar und ergänze Hintergründe und Kanten ohne unerwartete Rücksetzungen oder Größenänderungen.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungJeder visuellen Entscheidung einen Zweck geben
  2. 2
    ErklärungEine verlässliche Schriftartenliste wählen
  3. 3
    BeispielEinen Schriftschnitt laden und Text sichtbar halten
  4. 4
    HerausforderungEine Rücksetzung durch die font-Kurzschreibweise erkennen
  5. 5
    BeispielDen Zeilenabstand proportional halten
  6. 6
    TippMenüs und Links verständlich halten
  7. 7
    HerausforderungDen Block von seinem Inhalt unterscheiden
  8. 8
    BeispielEinen Hintergrundpfad nachvollziehen
  9. 9
    BeispielEin quadratisches Foto in eine breite Box skalieren
  10. 10
    KernaussageEine Tönung über ein Foto legen
  11. 11
    HerausforderungDas vollständige Foto erhalten
  12. 12
    ErklärungEine Kante zeichnen, ohne benachbarte Elemente zu verschieben
  13. 13
    HerausforderungDie Box abrunden und das Maß erhalten
  14. 14
    HerausforderungEine stabile interaktive Karte fertigstellen
  15. 15
    ZusammenfassungDekoration mit den zugrunde liegenden Regeln verbinden

CSS-Selektoren, Kaskade und Boxmodell: Übungsaufgaben

50 Übungsfragen in 5 Sets

Set 1: Lies Regeln und bestimme einfache Ergebnisse10 Übungsfragen

Frage 1 von 10

Eine Regel enthält color: 18px; padding: 12px;. Was geschieht mit diesen Deklarationen?
  1. Beide Deklarationen werden ignoriert.
  2. Die Farbe gilt; der Innenabstand wird ignoriert.
  3. Die Farbe wird ignoriert; der Innenabstand gilt.
  4. Beide Deklarationen gelten normal.
Antwort zeigenAntwort ausblenden
Antwort: C
18px ist eine Länge und damit kein gültiger Wert für color; der Browser ignoriert diese Deklaration. Der Wert für den Innenabstand ist gültig und gilt weiterhin. Ein fehlerhafter Wert macht nicht jede Deklaration im selben Block ungültig. Würden beide Deklarationen verworfen, ginge ein funktionierender Stil verloren.

Frage 2 von 10

Eine Seite enthält kein Autoren-CSS, dennoch ist eine Liste eingerückt und ihre Einträge haben Aufzählungszeichen. Woher stammen diese Stile?
  1. Aus dem Browser-Stylesheet.
  2. Aus den vererbten Außenabständen des Listentextes.
  3. Aus den Inline-Deklarationen der HTML-Datei.
  4. Aus dem automatischen Stylesheet des Editors.
Antwort zeigenAntwort ausblenden
Antwort: A
Der Browser liefert Standard-CSS für HTML-Elemente, darunter Listenzeichen und Einrückungen. Für diese Standardstile ist kein Autoren-Stylesheet nötig. Außenabstände werden normalerweise nicht vererbt und die sichtbaren Listenzeichen belegen nicht, dass die HTML-Datei Inline-Stildeklarationen enthält.

Frage 3 von 10

Ein Element hat class="panel featured". Welcher Selektor verlangt beide Klassenwörter auf demselben Element?
  1. .panel .featured
  2. .panel, .featured
  3. panel.featured
  4. .panel.featured
Antwort zeigenAntwort ausblenden
Antwort: D
Werden die beiden Klassenselektoren ohne Leerzeichen verbunden, muss ein Element beide Bedingungen erfüllen. Ein Leerzeichen würde ein featured-Nachfahrenelement innerhalb eines panel-Elements auswählen, also eine andere Beziehung. Ein Komma würde jede der beiden Klassen unabhängig zulassen und damit auch Elemente erreichen, die nur eine der verlangten Klassen haben.

Frage 4 von 10

Ein Artikel enthält ein h2 und danach zwei p-Elemente. Was wählt article p:first-child aus?
  1. Nur den ersten Absatz.
  2. Keinen der beiden Absätze.
  3. Nur den zweiten Absatz.
  4. Beide Absätze.
Antwort zeigenAntwort ausblenden
Antwort: B
:first-child prüft, ob der Absatz das erste Kindelement seines Elternelements ist. Die Überschrift nimmt diese Position ein, sodass keiner der beiden Absätze zutrifft. Den ersten Absatz auszuwählen würde das erste Kindelement mit dem ersten Element seines Typs verwechseln; p:first-of-type würde in diesem Artikel diese andere Auswahl ausdrücken.

Frage 5 von 10

Zwei normale Autorenregeln außerhalb von Ebenen lauten .badge { color: teal; } gefolgt von .badge { color: maroon; }. Welche Farbe setzt sich durch?
  1. Blaugrün.
  2. Kastanienbraun.
  3. Die Farbe des Elternelements.
  4. Die Standardfarbe des Browsers.
Antwort zeigenAntwort ausblenden
Antwort: B
Beide Deklarationen haben dieselbe Herkunft, Wichtigkeit, denselben Ebenenstatus und dieselbe Selektorspezifität. Daher gewinnt die spätere Deklaration und ergibt Kastanienbraun. Blaugrün würde die erste Deklaration als dauerhaft behandeln, aber die Quelltextreihenfolge löst diesen Gleichstand zugunsten der letzten geltenden Deklaration.

Frage 6 von 10

Welche ID-CLASS-TYPE-Spezifität hat .panel > a:hover?
  1. 0-1-2
  2. 0-2-2
  3. 1-1-1
  4. 0-2-1
Antwort zeigenAntwort ausblenden
Antwort: D
Die Klasse und die Hover-Pseudoklasse tragen jeweils eins zur CLASS-Spalte bei und a trägt eins zu TYPE bei. Der Kindkombinator trägt nichts bei, sodass das Ergebnis 0-2-1 ist. Würdest du den Kombinator als weiteren Typ zählen, ergäbe sich fälschlich 0-2-2; Beziehungszeichen tragen kein Spezifitätsgewicht.

Frage 7 von 10

Welche sechsstellige hexadezimale Farbangabe entspricht #4bd?
  1. #44bbdd
  2. #40b0d0
  3. #444bdd
  4. #4b4bdd
Antwort zeigenAntwort ausblenden
Antwort: A
Die dreistellige Hexadezimalform wird erweitert, indem jede Ziffer innerhalb ihres Kanalpaars wiederholt wird: Aus 4 wird 44, aus b wird bb und aus d wird dd. Das Ergebnis ist #44bbdd. Das Anhängen von Nullen zu #40b0d0 ändert die Kanalwerte und erzeugt eine andere Farbe, statt die Kurzform zu erweitern.

Frage 8 von 10

Ein content-box-Element hat width: 240px; padding: 12px; border: 3px solid; margin: 8px;. Wie breit ist seine Box einschließlich Rahmen?
  1. 240px.
  2. 255px.
  3. 270px.
  4. 286px.
Antwort zeigenAntwort ausblenden
Antwort: C
Die Inhaltsbreite beträgt 240px. Beide Seiten zusammen ergänzen 24px Innenabstand und 6px Rahmen, sodass sich 270px ergeben. Die seitlichen Außenabstände von je 8px liegen außerhalb der Box einschließlich Rahmen. Mit ihnen ergäben sich 286px horizontaler Platz, also ein anderes Maß als die gefragte Breite.

Frage 9 von 10

Welche Schriftartenliste bietet benannte Auswahlmöglichkeiten und eine funktionierende generische Rückfalloption?
  1. "Noto Sans", Arial, "sans-serif"
  2. "Noto Sans Arial", sans-serif
  3. "Noto Sans", "Arial sans-serif"
  4. "Noto Sans", Arial, sans-serif
Antwort zeigenAntwort ausblenden
Antwort: D
Die Familiennamen sind getrennte, durch Kommas abgegrenzte Auswahlmöglichkeiten und die generische Schriftfamilie sans-serif ohne Anführungszeichen bleibt verfügbar, wenn die benannten Schriftarten fehlen. Anführungszeichen machen sie zu einem wörtlichen Schriftnamen. Dadurch kann die Liste ihre vorgesehene generische Rückfalloption verlieren, obwohl die Deklaration weiterhin geparst wird.

Frage 10 von 10

Eine section hat font-size: 20px; line-height: 1.4;. Ihr h2-Kindelement hat font-size: 1.5em und keine Deklaration für die Zeilenhöhe. Welche Schriftgröße und Zeilenhöhe hat die Überschrift?
  1. 30px Text mit 42px Zeilenhöhe.
  2. 30px Text mit 28px Zeilenhöhe.
  3. 20px Text mit 28px Zeilenhöhe.
  4. 30px Text mit 45px Zeilenhöhe.
Antwort zeigenAntwort ausblenden
Antwort: A
Die Schriftgröße der Überschrift beträgt das 1,5-Fache der 20px ihres Elternelements und wird damit zu 30px. Sie erbt den einheitenlosen Faktor 1,4 und wendet ihn auf ihre eigene Größe an, sodass sich 42px Zeilenhöhe ergeben. Eine Zeilenhöhe von 28px entstünde durch das Erben einer festen berechneten Länge, nicht durch die hier verwendete einheitenlose Zahl.
Set 2: Wende Selektoren, Abstände und Dekoration an10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Die HTML-Datei ist /site/pages/team.html; das Stylesheet ist /site/css/theme.css. Welches relative href erreicht das Stylesheet?
  1. css/theme.css
  2. ../css/theme.css
  3. ../pages/theme.css
  4. ../../css/theme.css
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Eine section enthält ein h3, ein p, ein aside und dann ein weiteres p. Was wählt h3 ~ p innerhalb dieses Abschnitts aus?
  1. Nur den nächsten Absatz.
  2. Nur den letzten Absatz.
  3. Die Überschrift und beide Absätze.
  4. Beide Absätze als Geschwisterelemente.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Ein Elternelement passt zu #article { color: olive; } und sein Absatz als Kindelement passt zu p { color: purple; }. Welche Farbe verwendet der Absatz?
  1. Violett aus seiner eigenen Regel.
  2. Olivgrün aus der ID des Elternelements.
  3. Olivgrün, bis eine Klasse ergänzt wird.
  4. Die Standardfarbe des Browsers.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Ein Absatz hat style="color: coral;" und passt zu .notice { color: indigo !important; } im Autoren-CSS. Welche Farbe wird verwendet?
  1. Koralle.
  2. Die Farbe des Elternelements.
  3. Indigo.
  4. Die Standardfarbe des Browsers.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Die Schriftgröße eines Elternelements beträgt 18px. Sein Kindelement hat font-size: 1.5em; padding: 0.5em;. Wie viel Innenabstand wird auf jeder Seite festgelegt?
  1. 9px.
  2. 27px.
  3. 13,5px.
  4. 36px.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Ein Link bleibt eine gewöhnliche Inlinebox und width: 180px hat keine Wirkung auf seine Größe. Welcher display-Wert hält ihn auf Inline-Ebene und erlaubt zugleich diese Breite?
  1. inline-block
  2. inline
  3. none
  4. block
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Eine border-box-Karte hat width: 260px; padding: 18px; border: 2px solid;. Wie breit ist ihr Inhaltsbereich?
  1. 260px.
  2. 224px.
  3. 300px.
  4. 220px.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Eine Regel verwendet background-color: linear-gradient(white, navy);. Warum wird der Farbverlauf nicht angezeigt?
  1. Ein Farbverlauf braucht border-style.
  2. Ein Farbverlauf ist ein Bildwert.
  3. Ein Farbverlauf braucht einen Wiederholungswert.
  4. Benannte Farben sind ungültige Farbstopps.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Eine Box hat border-width: 4px; border-color: teal; und keine weiteren Rahmendeklarationen. Warum ist kein Rahmen sichtbar?
  1. Die anfängliche Rahmenbreite ist null.
  2. Der anfängliche Rahmenstil ist none.
  3. Die Rahmenfarbe braucht einen Alphawert.
  4. Die Breite braucht border-box-Größenberechnung.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Normales Autoren-CSS deklariert @layer base, widgets;. Base enthält #info { color: teal; }; widgets enthält .card { color: maroon; }. Eine Regel außerhalb von Ebenen, p { color: navy; }, trifft ebenfalls auf <p id="info" class="card"> zu. Welche Farbe gewinnt?
  1. Blaugrün.
  2. Kastanienbraun.
  3. Die vererbte Farbe.
  4. Marineblau.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Set 3: Verfolge Werte durch Seitenstrukturen aus der Praxis10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Eine Deklaration funktioniert, nachdem du sie in den Entwicklerwerkzeugen bearbeitet hast, aber die Änderung verschwindet nach dem Neuladen. Was musst du tun, damit sie erhalten bleibt?
  1. Die funktionierende Deklaration im Stylesheet speichern.
  2. Ein Bildschirmfoto des Stilbereichs speichern.
  3. Mit demselben ausgewählten Element erneut laden.
  4. Das Element einem anderen HTML-Elternelement zuordnen.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Eine Regel .alert.urgent trifft nicht auf <p class="alert"><span class="urgent">Update</span></p> zu. Welcher Selektor wählt das urgent-span nur aus, wenn es innerhalb eines alert-Elements liegt?
  1. .alert.urgent
  2. .alert, .urgent
  3. .alert .urgent
  4. p.alert.urgent
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Ein Link hat href="manual.PDF". Welcher Selektor trifft unabhängig von der Groß- und Kleinschreibung auf eine PDF-Endung zu?
  1. a[href^=".pdf" i]
  2. a[href=".pdf" i]
  3. a[href~=".pdf" i]
  4. a[href$=".pdf" i]
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Ein div class="tools" enthält ein direktes ul mit Link A innerhalb eines li sowie eine section mit einem weiteren ul, das Link B enthält. Der Zeiger liegt über beiden Links. Worauf trifft .tools > ul a:hover zu?
  1. Nur auf Link B.
  2. Nur auf Link A.
  3. Auf beide Links A und B.
  4. Auf weder Link A noch Link B.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Zwei normale Autorendeklarationen in derselben Ebene verwenden #menu a und .menu a.selected. Beide treffen auf einen Link zu. Welcher Selektor hat die höhere Spezifität?
  1. #menu a
  2. .menu a.selected
  3. Beide haben dieselbe Spezifität.
  4. Das nähere Vorfahrenelement entscheidet.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Autoren-CSS setzt div { display: initial; }. Welchen display-Wert erhält das div durch diese Deklaration?
  1. block
  2. inline-block
  3. none
  4. inline
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Eine Beschriftung über einem Foto verwendet background-color: rgb(0 0 0 / 0.5); color: white;. Ein Entwickler ersetzt den Hintergrund mit Alphawert durch deckendes Schwarz und ergänzt opacity: 0.5 für die Beschriftung. Was ändert sich?
  1. Nur der Hintergrund bleibt halbtransparent.
  2. Auch der Text wird teilweise transparent.
  3. Auch der Text wird deckend schwarz.
  4. Das Foto wird Teil der Beschriftung.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Ein umschließender Block ist 420px breit und 300px hoch. Zu welchem Wert wird padding-top: 10% bei seinem Kindelement aufgelöst?
  1. 30px.
  2. 10px.
  3. 42px.
  4. 72px.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Im normalen Blockfluss fallen zwei angrenzende vertikale Außenabstände zusammen: Der erste beträgt 26px und der zweite −9px. Welche Lücke ergibt sich?
  1. 26px.
  2. 35px.
  3. 17px.
  4. −9px.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Ein quadratisches Foto wird einmal und ohne Wiederholung hinter einem Banner von 900px mal 300px verwendet. Was geschieht bei background-size: contain; background-position: center;?
  1. Ein 300px großes quadratisches Bild lässt auf jeder Seite 300px frei.
  2. Ein 900px großes quadratisches Bild verliert oben und unten je 300px.
  3. Ein Bild von 900px mal 300px füllt das Banner durch Streckung.
  4. Ein 300px großes quadratisches Bild lässt alle 600px rechts frei.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Set 4: Löse Stilkonflikte und untersuche veränderte Boxen10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Welcher CSS-Kommentar kann eine Gruppe von Regeln zuverlässig beschriften?
  1. // Article styles
  2. <!-- Article styles -->
  3. # Article styles
  4. /* Article styles */
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Eine Regel h2, p..lead, blockquote { color: teal; } ändert keines dieser Elemente. Was erklärt das Ergebnis?
  1. Ein Komma verlangt, dass alle Selektoren auf ein Element zutreffen.
  2. Ein ungültiger Selektor macht die gewöhnliche Selektorliste ungültig.
  3. Der blockquote-Selektor hebt den Überschriftenselektor auf.
  4. Eine Liste darf Klassen- und Typselektoren nicht mischen.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Eine section enthält <h2>News</h2><aside><p>A</p></aside><p>B</p><p>C</p>. Welcher Text wird jeweils von h2 + p und h2 ~ p ausgewählt?
  1. A; B und C.
  2. B; B und C.
  3. Keiner; B und C.
  4. Keiner; A, B und C.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Autoren-CSS deklariert @layer foundations, details;. Foundations enthält .flag { color: teal !important; }; details enthält #notice { color: purple !important; }; eine Regel außerhalb von Ebenen enthält p { color: navy !important; }. Alle treffen auf einen Absatz zu. Welche Farbe gewinnt?
  1. Blaugrün.
  2. Violett.
  3. Marineblau.
  4. Die Farbe des Elternelements.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Eine Textfarbe in normaler Größe auf Weiß erreicht einen gemessenen Kontrast von 4,2:1. Wie fällt das Kontrastergebnis nach WCAG AA aus?
  1. Der Mindestwert für normalen Text wird erfüllt.
  2. Die Anforderung wird verfehlt, weil jeder Text 7:1 braucht.
  3. Die Anforderung wird nur wegen des weißen Hintergrunds erfüllt.
  4. Der Mindestwert für normalen Text wird verfehlt.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Ein content-box-Kindelement hat width: 100%; padding: 0 15px; in einem 480px breiten Inhaltsbereich und hat weder Rahmen noch Außenabstände. Wie breit ist seine Box einschließlich Rahmen?
  1. 480px.
  2. 510px.
  3. 495px.
  4. 450px.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Die Box einer Karte einschließlich Rahmen ist 360px breit. Ihre Regel lautet width: 320px; padding: 18px; border: 2px solid; bei Größenberechnung mit content-box. Nach dem Wechsel zu border-box und einer Erhöhung des Innenabstands auf 24px muss sie 360px breit bleiben. Welche angegebene Breite und Inhaltsbreite ergeben sich?
  1. 360px angegeben; 308px Inhalt.
  2. 320px angegeben; 268px Inhalt.
  3. 360px angegeben; 312px Inhalt.
  4. 372px angegeben; 320px Inhalt.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Ein Element erhält zuerst font-weight: 700; font-style: italic;, dann font: 1.25rem/1.4 Arial, sans-serif;. Welche Strichstärke und welcher Stil gelten nach der Kurzschreibweise?
  1. Fette Strichstärke und kursiver Stil.
  2. Normale Strichstärke und kursiver Stil.
  3. Normale Strichstärke und normaler Stil.
  4. Fette Strichstärke und normaler Stil.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Eine Navigationsliste hat list-style: none;, aber ihre Einträge sind noch eingerückt. Welche zusätzliche Regel entfernt die standardmäßige Einrückung?
  1. text-indent: 0;
  2. list-style-position: inside;
  3. text-align: start;
  4. padding: 0;
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Ein Inline-Blocklink verwendet Größenberechnung mit content-box und einen Rahmen von 1px. Beim Überfahren mit dem Zeiger muss ein stärkerer Hinweis erscheinen, während seine Inhaltsbreite und alle Boxmaße erhalten bleiben. Welche Änderung erfüllt diese Anforderung?
  1. Die Rahmenbreite auf 3px erhöhen.
  2. Beim Überfahren eine Kontur von 3px ergänzen.
  3. Zur Größenberechnung mit border-box wechseln.
  4. Auf jeder Seite 2px Innenabstand ergänzen.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Set 5: Untersuche und erkläre ungewohnte Kombinationen10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Eine Stylesheet-Anfrage ist erfolgreich. Ihre Regel erscheint für ein untersuchtes span und width: 160px ist gültig und nicht durchgestrichen, aber das span ist weiterhin nur so breit wie sein Text. Was erklärt das?
  1. Die Anfrage verwendete das falsche Stylesheet.
  2. Das span erbt die Breite eines Elternelements.
  3. Das span ist eine gewöhnliche Inlinebox.
  4. Der Außenabstand des span verbirgt seine Breite.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Eine Liste hat genau acht li-Kindelemente und keine anderen Kindelemente. Welche Kindpositionen passen zu li:nth-child(3n+2)?
  1. 2, 5 und 8.
  2. 3 und 6.
  3. 1, 4 und 7.
  4. 2, 4, 6 und 8.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Alle Deklarationen sind normale Autorenregeln außerhalb von Ebenen. Ein Link innerhalb von <section id="main"> passt zu :where(#main) a { color: teal; }, :is(#spare, section) a { color: purple; } und danach zu .chosen:hover { color: navy; }. Er hat die Klasse chosen und der Zeiger liegt darüber. Welche Farbe gewinnt?
  1. Blaugrün.
  2. Marineblau.
  3. Die vererbte Farbe.
  4. Violett.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Ein Container hat color: maroon; background-color: beige;. Sein Kindelement hat color: unset; background-color: unset; und keine anderen relevanten Stile. Welche eigenen Werte für Farbe und Hintergrund hat das Kindelement?
  1. Kastanienbrauner Text und beiger Hintergrund.
  2. Kastanienbrauner Text und transparenter Hintergrund.
  3. Anfängliche Textfarbe und transparenter Hintergrund.
  4. Anfängliche Textfarbe und beiger Hintergrund.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Die Schriftgröße des Wurzelelements beträgt 20px und ein Container ist 700px breit. Sein border-box-Kindelement hat width: calc(100% - 4rem); padding: 1em; border: 2px solid; font-size: 1.5rem;. Wie breit ist der Inhalt des Kindelements?
  1. 620px.
  2. 556px.
  3. 576px.
  4. 616px.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Ein 500px breiter Block hat weder Innenabstand noch Rahmen. Sein Kindelement hat ebenfalls weder Innenabstand noch Rahmen und ist ein gewöhnlicher Block mit width: 320px; margin: 0 auto; text-align: center;. Welche horizontalen Außenabstände und welche Textausrichtung ergeben sich?
  1. 180px auf jeder Seite; zentrierter Text.
  2. 90px auf jeder Seite; am Anfang ausgerichteter Text.
  3. Null seitlicher Außenabstand; zentrierter Text.
  4. 90px auf jeder Seite; zentrierter Text.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Ein Webfont wird mit @font-face { font-family: "Lumen Sans"; src: url("fonts/lumen-regular.woff2") format("woff2"); } deklariert. Welchen Namen sollte eine Schriftartenliste verwenden, um diesen Schriftschnitt anzufordern?
  1. "Lumen Sans"
  2. "lumen-regular"
  3. "lumen-regular.woff2"
  4. "fonts/lumen-regular.woff2"
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Linkregeln gleicher Spezifität legen zuerst a:hover { color: teal; } und danach a:visited { color: purple; } fest. Der Zeiger liegt über einem besuchten Link. Welche Änderung macht seine Farbe beim Überfahren blaugrün und erhält Violett für den besuchten Link, wenn der Zeiger nicht darüberliegt?
  1. Die visited-Regel nach die hover-Regel setzen.
  2. Violett stattdessen am Elternelement des Links setzen.
  3. Die hover-Regel nach die visited-Regel setzen.
  4. :hover in der ersten Regel durch :active ersetzen.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Eine Seite unter /site/index.html bindet /site/css/main.css ein. Dieses CSS verwendet background-image: url("images/banner.jpg");, aber das Bild liegt unter /site/images/banner.jpg. Eine spätere Regel setzt außerdem background: navy;. Welche Korrektur erhält Marineblau hinter dem Bild?
  1. Nur die URL in ../images/banner.jpg ändern und die Reihenfolge beibehalten.
  2. Nur die Kurzschreibweise in background-color: navy ändern und die URL beibehalten.
  3. background: navy; vor background-image: url("images/banner.jpg"); schreiben.
  4. background: navy; vor background-image: url("../images/banner.jpg"); schreiben.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Eine rechteckige Box misst 160px mal 80px und hat border-radius: 50%. Welche abgerundete Form erhält ihr Hintergrund?
  1. Einen Kreis.
  2. Eine Ellipse.
  3. Ein abgerundetes Quadrat.
  4. Eine Kapselform mit geraden Seitenkanten.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Hängst du bei deiner eigenen Aufgabe fest? Hausaufgabenhilfe

Schlüsselbegriffe

84 Schlüsselbegriffe, jeweils mit Definition

A

Allgemeiner Geschwisterkombinator
Der allgemeine Geschwisterkombinator ~ wählt passende spätere Geschwisterelemente eines Elements aus und erlaubt weitere Geschwisterelemente dazwischen.
Der Selektor h2 ~ p kann zwei durch ein aside-Element getrennte Absätze erreichen, wenn alle dasselbe Elternelement wie die Überschrift haben.
Alphawert
Der Alphawert ist die Deckkraftkomponente eines Farbwerts und reicht von vollständig transparent bei null bis vollständig deckend bei eins oder 100 %.
Ein Hintergrund mit halbem Alphawert kann ein Foto dahinter durchscheinen lassen, während der Text des Elements vollständig deckend bleibt.
Attributselektor
Ein Attributselektor trifft anhand des Vorhandenseins eines Attributs oder einer Bedingung für dessen Wert auf ein Element zu und verwendet dafür eckige Klammern.
Der Selektor a[href$=".pdf" i] kann Dokumentlinks auch dann gestalten, wenn die Dateiendung großgeschrieben ist.
Außenabstand
Ein Außenabstand ist transparenter Platz außerhalb des Rahmens einer Box. Er trennt sie von benachbarten Boxen und ist nicht in der angegebenen Breite enthalten.
Ein Hintergrund kann die durch einen Außenabstand erzeugte Lücke nicht färben; farbiger innerer Abstand braucht daher Innenabstand.
Automatischer Außenabstand
Ein automatischer horizontaler Außenabstand nimmt verbleibenden Platz neben einem Block auf, sodass zwei gleiche automatische Seitenabstände eine schmalere Box zentrieren können.
Ein Block, der seinen Container bereits ausfüllt, kann sich nicht sichtbar verschieben, wenn beide seitlichen Außenabstände auf auto gesetzt werden.

B

Benachbarter Geschwisterkombinator
Der benachbarte Geschwisterkombinator + wählt ein passendes Element unmittelbar nach einem anderen Element aus, wenn beide dasselbe Elternelement haben.
Der Selektor h2 + p erreicht einen einleitenden Absatz, trifft aber nicht mehr zu, wenn ein aside-Element dazwischensteht.
Berechneter Wert
Ein berechneter Wert ist ein Eigenschaftswert, nachdem der Browser die Kaskade und die Berechnungsregeln darauf angewendet hat, aber bevor manche layoutabhängige Werte aufgelöst werden.
Die Entwicklerwerkzeuge können zeigen, dass eine Schriftgröße in em zu Pixeln wird, während eine prozentuale Breite vom Layout abhängt.
Blockbox
Eine Blockbox beginnt normalerweise in einer neuen Zeile, akzeptiert Maße und füllt bei automatischer Breite die verfügbare Breite ihres Containers aus.
Ein Absatz kann eine Höchstbreite und automatische seitliche Außenabstände verwenden und dabei seinen Text linksbündig halten.
box-sizing
Box-sizing bestimmt, ob eine angegebene Breite oder Höhe nur den Inhaltsbereich misst oder auch Innenabstand und Rahmen einschließt.
Wenn eine Karte mit Innenabstand und voller Breite auf border-box umgestellt wird, kann ihre äußere Breite wieder in ihren Container passen.
Boxschatten
Ein Boxschatten zeichnet mit Versatzwerten, optionaler Unschärfe und Ausdehnung sowie einer Farbe einen äußeren oder inneren Schatten, ohne Platz im Boxmodell hinzuzufügen.
Eine Karte kann einen weichen Schatten erhalten und dieselbe berechnete Breite einschließlich Rahmen und Position unter ihren Nachbarn behalten.
Browser-Stylesheet
Ein Browser-Stylesheet ist die eingebaute Sammlung von CSS-Regeln des Browsers, die HTML-Elementen ihr standardmäßiges Aussehen gibt.
Große Überschriften und eingerückte Listen erscheinen auf einer einfachen HTML-Seite, bevor ein Autor ein Stylesheet hinzufügt.

C

calc()-Funktion
Die Funktion calc() kombiniert kompatible CSS-Werte in einem Ausdruck und erlaubt, relative und absolute Größen in einer Länge zu mischen.
Der Wert calc(100% - 40px) zieht einen festen Betrag von einer containerbezogenen Breite ab; um das Minus stehen Leerzeichen.
ch-Einheit
Ein ch ist eine schriftbezogene Länge, die auf der Vorschubbreite des Nullzeichens beruht und häufig zur Begrenzung der Breite von Textspalten verwendet wird.
Ein Absatz mit max-width: 65ch folgt der Schriftgröße, ohne genau 65 Buchstaben pro Zeile zu garantieren.
CSS
CSS ist eine Sprache, die die Darstellung von HTML-Elementen beschreibt, darunter ihre Farben, Schriftarten, Abstände, Rahmen und Hintergründe.
Eine Seite kann dieselbe Überschriftenstruktur behalten, während ein anderes Stylesheet ihre Farben und Schriftarten ändert.
CSS-Pixel
Ein CSS-Pixel ist eine absolute Referenzlänge für die Seitengestaltung, die auf einer Anzeige mit hoher Pixeldichte mehreren physischen Pixeln entsprechen kann.
Eine Schrift mit 16px kann eine ähnliche beabsichtigte Größe behalten, selbst wenn zwei Bildschirme unterschiedliche Gerätepixeldichten haben.
CSS-Reset
Ein CSS-Reset ist eine Sammlung von CSS-Regeln, die ausgewählte Browserstandardstile entfernt, damit ein Design eigene einheitliche Ausgangsstile festlegen kann.
Eine Regel, die allen Innenabstand entfernt, entfernt auch die Listeneinrückung, die das Design möglicherweise wiederherstellen muss.

D

Deklaration
Eine Deklaration besteht aus einer CSS-Eigenschaft und einem durch einen Doppelpunkt verbundenen Wert und legt innerhalb einer Regel einen Teil des Aussehens eines Elements fest.
In color: navy; legt die Deklaration die Textfarbe fest und das Semikolon trennt sie von der nächsten Einstellung.

E

Eckenradius
Ein Eckenradius rundet die Ecken einer Box ab, ohne ihre Maße zu vergrößern; die Werte können für die vier Ecken unterschiedlich sein.
Ein Radius von 50 % macht eine quadratische Box kreisförmig, während derselbe Wert bei einem Rechteck eine Ellipse erzeugt.
em-Einheit
Ein em ist eine schriftbezogene Länge, die bei font-size die Schriftgröße des Elternelements und bei anderen Eigenschaften die eigene Schriftgröße des Elements verwendet.
Nachdem für ein Kindelement 20px Textgröße berechnet wurden, wird sein Innenabstand von 2em zu 40px, statt erneut dem Elternelement zu folgen.

F

Farbverlauf
Ein Farbverlauf ist ein vom Browser erzeugtes Bild mit Farben, die sich entlang einer Linie oder von einer Mitte nach außen ändern. Er wird als Bildwert verwendet.
Ein vor einem Foto aufgeführter halbtransparenter Farbverlauf kann dieses Foto abdunkeln, ohne die Deckkraft des darüberliegenden Textes zu ändern.
focus-visible-Zustand
Der focus-visible-Zustand trifft auf ein fokussiertes Element zu, wenn der Browser feststellt, dass der Leser einen sichtbaren Fokusindikator braucht.
Ein Tastaturnutzer kann vor der Aktivierung eine Kontur am Link sehen, der durch a:focus-visible ausgewählt wird.

G

Generierter Inhalt
Generierter Inhalt ist Text oder eine dekorative Box, die durch CSS-Pseudoelemente erzeugt werden, statt als HTML-Inhaltsknoten geschrieben zu sein.
Ein mit ::after hinzugefügtes Sternchen braucht einen content-Wert; wesentliche Anweisungen bleiben im HTML.
Generische Schriftfamilie
Eine generische Schriftfamilie bezeichnet eine allgemeine Schriftkategorie als Rückfalloption für den Browser, etwa serif, sans-serif, monospace oder system-ui.
Anführungszeichen um sans-serif machen daraus einen wörtlichen Schriftnamen und nehmen ihm seine Funktion als generische Rückfalloption der Liste.
Geschwisterelement
Ein Geschwisterelement hat dasselbe Elternelement wie ein anderes Element; Geschwisterkombinatoren nutzen ihre Reihenfolge im HTML-Baum.
Ein Absatz innerhalb eines aside-Elements ist kein Geschwisterelement einer Überschrift außerhalb des aside-Elements, selbst wenn sie benachbart aussehen.

H

Hexadezimale Farbangabe
Eine hexadezimale Farbangabe schreibt die Kanalwerte für Rot, Grün und Blau zur Basis 16, optional mit einem zusätzlichen Paar für die Transparenz der Farbe.
Die Erweiterung von #3ac ergibt #33aacc, weil jede Ziffer für ihren Kanal zu einem wiederholten Paar wird.
Hintergrundbild
Ein Hintergrundbild ist ein dekoratives Bild, das hinter dem Inhalt einer Box und über ihrer Hintergrundfarbe gezeichnet wird und dessen Größe und Wiederholung steuerbar sind.
Ein CSS-Foto kann nicht geladen werden, während die Box ihre Ersatzfarbe behält und der Text im Dokument bleibt.
Hintergrundbildgröße
Die Hintergrundbildgröße steuert die dargestellten Maße eines Hintergrundbildes; cover und contain erhalten dabei die Proportionen des Bildes.
Cover kann in einer breiten Box den oberen und unteren Teil eines quadratischen Fotos abschneiden; contain kann daneben Lücken lassen.
Hintergrundbildposition
Die Hintergrundbildposition platziert ein Bild mit Schlüsselwörtern, Längen oder Prozentangaben innerhalb seines Hintergrundbereichs, wobei die horizontale Position zuerst steht.
Ein zentriertes cover-Bild verteilt einen nötigen Zuschnitt um seine Mitte, statt nur die linke obere Ecke beizubehalten.
Hintergrundebene
Eine Hintergrundebene ist ein Bild in einer durch Kommas getrennten Hintergrundliste, wobei das zuerst aufgeführte Bild über den späteren Bildern gezeichnet wird.
Eine Farbe unter allen Bildebenen kann durch transparente Teile und unbedeckte Lücken sichtbar bleiben.
HSL-Farbangabe
Eine HSL-Farbangabe beschreibt den Farbton als Winkel zusammen mit prozentualer Sättigung und Helligkeit und bietet eine weitere Schreibweise für eine Farbe.
Bleibt der Farbton gleich und wird die Helligkeit erhöht, kann aus einem dunklen Blau eine blasse Variante dieses Blaus werden.

I

ID-Selektor
Ein ID-Selektor trifft auf die eindeutige ID eines Elements zu und trägt mehr zur Spezifität bei als Klassenselektoren in einer konkurrierenden Regel.
Ein Selektor mit #site-header kann später schwerer zu überschreiben sein als einer mit einer wiederverwendbaren Header-Klasse.
Inhaltsbereich
Der Inhaltsbereich ist der innere Teil der Box eines Elements, der Text, Bild oder Kindelemente enthält und innerhalb von Innenabstand und Rahmen liegt.
Eine content-box-Breite von 300px lässt die gesamten 300px für den Inhalt, bevor der Innenabstand zu den äußeren Maßen hinzugefügt wird.
Inline-Blockbox
Eine Inline-Blockbox fügt sich in eine Textzeile ein, akzeptiert dabei ausdrücklich angegebene Maße und reserviert vertikalen Platz für ihre Boxabstände.
Ein Navigationslink kann durch Innenabstand eine größere anklickbare Fläche erhalten, ohne jeden Link in eine eigene Zeile zu zwingen.
Inlinebox
Eine gewöhnliche Inlinebox fließt innerhalb einer Textzeile, erhält ihre Breite aus ihrem Inhalt und ignoriert ausdrücklich angegebene Breite und Höhe.
Ein span wird nicht allein deshalb 200px breit, weil eine Regel ihm width: 200px zuweist, solange es inline bleibt.
Innenabstand
Der Innenabstand ist der Platz zwischen dem Inhalt einer Box und ihrem Rahmen. Er trägt den Hintergrund der Box und geht in ihre Maße ein.
Ein größerer Innenabstand einer Karte erzeugt farbigen Freiraum um ihren Text statt einer transparenten Lücke außerhalb.

K

Kaskade
Die Kaskade ist das geordnete Verfahren, das bei konkurrierenden CSS-Regeln für jede Eigenschaft jedes Elements eine maßgebliche Deklaration auswählt.
Ein Absatz kann seine Farbe aus einer Klassenregel und seine Schriftgröße aus einer separaten Typselektorregel erhalten.
Kaskadenebene
Eine Kaskadenebene ist eine benannte Gruppe von Regeln mit einer ausdrücklichen Priorität gegenüber anderen Ebenen, die vor der Selektorspezifität verglichen wird.
Eine normale Klasse in einer Komponentenebene kann eine ID-basierte Regel in einer Basisebene übertreffen, wenn die Komponentenebene später kommt.
Kindelement
Ein Kindelement ist ein Element, das direkt innerhalb eines Elternelements liegt, ohne ein weiteres Element dazwischen im HTML-Baum.
Der Selektor .menu > li lässt Einträge aus, deren Elternelement eine separate verschachtelte Liste innerhalb des Menüs ist.
Klassenselektor
Ein Klassenselektor trifft auf Elemente zu, deren durch Leerzeichen getrenntes class-Attribut das benannte Wort enthält, und macht den Stil dadurch wiederverwendbar.
Der Selektor .notice trifft sowohl auf einen einfachen Hinweis als auch auf ein Element mit class="card notice" zu.
Kontrastverhältnis
Ein Kontrastverhältnis vergleicht die relative Leuchtdichte von Vordergrund- und Hintergrundfarben, um ihren sichtbaren Hell-Dunkel-Unterschied zu messen.
Text mit einem Kontrast von 2,85:1 verfehlt sowohl den WCAG-AA-Mindestschwellenwert für normalen als auch den für großen Text.
Kontur
Eine Kontur ist eine Linie, die außerhalb des Rahmens einer Box gezeichnet wird, ohne zusätzlichen Platz im Layout zu reservieren, und häufig den Tastaturfokus anzeigt.
Ein Link kann eine Fokus-Kontur von 3px erhalten, ohne benachbarten Text wegzuschieben, wie es ein größerer content-box-Rahmen täte.
Konturabstand
Ein Konturabstand legt den Abstand zwischen der Kontur eines Elements und seinem Rahmen fest und ändert den gezeichneten Hinweis, ohne die Boxmaße zu ändern.
Ein Abstand von 2px trennt eine Fokus-Kontur vom Rahmen eines Links, sodass die beiden Linien optisch unterscheidbar bleiben.
Kurzschreibweise
Eine Kurzschreibweise legt mehrere verwandte CSS-Eigenschaften zugleich fest und setzt die zugehörigen Einzeleigenschaften zurück, die ihr Wert nicht angibt.
background: white; kann ein Foto entfernen, das zuvor mit background-image zugewiesen wurde.

L

Linkzustand
Ein Linkzustand ist eine Auswahlbedingung wie nicht besucht, besucht, fokussiert, unter dem Zeiger oder aktiv, anhand derer ein Link zur Gestaltung ausgewählt werden kann.
Ein besuchter Link kann zugleich unter dem Zeiger liegen, sodass die Reihenfolge von Farbregeln gleicher Spezifität sein Aussehen beeinflusst.
Listenzeichen
Ein Listenzeichen ist das Aufzählungszeichen, die Nummer oder ein anderer einem Listeneintrag zugeordneter Indikator, der über Listeneigenschaften oder ::marker gestaltet wird.
Ein Wechsel des Listenzeichens zu einem Quadrat entfernt nicht die separate standardmäßige Einrückung des Listencontainers.

N

Nachfahrenelement
Ein Nachfahrenelement ist ein Element, das an beliebiger Stelle innerhalb eines anderen Elements verschachtelt ist, direkt oder über ein oder mehrere Zwischenelemente.
Der Selektor nav a erreicht einen Navigationslink auch dann, wenn eine Liste und ein Listeneintrag zwischen ihm und dem nav liegen.

P

Prozentangabe
Eine CSS-Prozentangabe drückt einen Anteil einer durch die Eigenschaft bestimmten Bezugsgröße aus, etwa der Containerbreite oder der Schriftgröße des Elternelements.
Ein oberer Innenabstand von 10 % in einem 500px breiten Container verwendet diese Breite und wird unabhängig von der Höhe zu 50px aufgelöst.
Pseudoelement
Ein Pseudoelement wählt einen Teil eines Elements aus oder erzeugt einen generierten Teil zur Gestaltung und wird üblicherweise mit zwei Doppelpunkten geschrieben.
Eine Regel für li::marker kann Aufzählungszeichen färben und die vorhandene Textfarbe des Listeneintrags erhalten.
Pseudoklasse
Eine Pseudoklasse ist eine mit einem einzelnen Doppelpunkt geschriebene Selektorbedingung, die anhand des Zustands oder der strukturellen Position eines Elements zutrifft.
Die Pseudoklasse :checked kann ein Kontrollkästchen auswählen, dessen aktueller Auswahlzustand nicht durch eine Klasse dargestellt wird.

Q

Quelltextreihenfolge
Die Quelltextreihenfolge ist die Abfolge der Deklarationen, in der CSS gelesen wird. Sie löst einen Konflikt erst, wenn frühere Vergleiche der Kaskade gleichauf liegen.
Bei zwei gleichen Klassenselektoren, die in einer Ebene die Farbe festlegen, gewinnt die spätere Deklaration.

R

Rahmen
Ein Rahmen ist die gestaltete Kante um den Innenabstandsbereich einer Box. Seine Breite, sein Stil und seine Farbe gehen in die Boxgröße ein.
Zwei seitliche Rahmen von je 2px fügen der content-box-Breite einer Karte 4px hinzu, auch wenn um die Karte zusätzlich ein weicher Schatten gezeichnet wird.
rem-Einheit
Ein rem ist eine Länge relativ zur Schriftgröße des Wurzelelements und bietet eine gemeinsame Bezugsgröße über verschachtelte Elemente der Seite hinweg.
Mehrere verschachtelte Einträge mit 1.25rem behalten dieselbe Textgröße, wenn sie dieselbe unveränderte Größe des Wurzelelements nutzen.
RGB-Farbangabe
Eine RGB-Farbangabe legt die Anteile von rotem, grünem und blauem Licht fest, häufig als Kanalzahlen von 0 bis 255 in rgb().
Der Wert rgb(30 144 255) ergibt dieselben Kanalanteile wie der sechsstellige Hexadezimalwert #1e90ff.

S

Schlüsselwort currentColor
Das Schlüsselwort currentColor steht für die eigene Textfarbe des Elements, wenn eine andere farbführende Eigenschaft einen passenden Wert braucht.
Ein Rahmen mit currentColor ändert sich mit der Textfarbe, wenn eine Hover-Regel nur color aktualisiert.
Schlüsselwort inherit
Das Schlüsselwort inherit gibt einer Eigenschaft ausdrücklich den berechneten Wert ihres Elternelements, auch wenn diese Eigenschaft normalerweise nicht vererbt wird.
font: inherit auf Steuerelementen kann ihre vom Browser zugewiesene Schrift durch die Schrift des umgebenden Textes ersetzen.
Schlüsselwort initial
Das Schlüsselwort initial wählt den Anfangswert einer Eigenschaft aus der CSS-Spezifikation, unabhängig von der Standardregel für das HTML-Element.
display: initial ergibt für ein div eine Inline-Darstellung, obwohl der Browser es normalerweise als Block darstellt.
Schlüsselwort revert
Das Schlüsselwort revert nimmt eine Eigenschaft über die aktuelle Stilherkunft hinaus zurück, sodass ein geltender Wert einer niedrigeren Herkunft zum Zuge kommt.
Eine Autorenregel mit display: revert kann die normale vom Browser zugewiesene Blockdarstellung eines div wiederherstellen.
Schlüsselwort revert-layer
Das Schlüsselwort revert-layer nimmt den Wert einer Eigenschaft über die aktuelle Kaskadenebene hinaus zurück, sodass eine Quelle mit niedrigerer Priorität ihn liefern kann.
Eine Komponentenebene kann ihre Farbeinstellung zurücknehmen und die passende Farbe aus einer früheren Basisebene wieder erscheinen lassen.
Schlüsselwort unset
Das Schlüsselwort unset folgt bei einer vererbten Eigenschaft der normalen Vererbung und verwendet bei einer nicht vererbten Eigenschaft den Anfangswert.
unset auf color kann die Textfarbe eines Elternelements erhalten, während es auf margin einen lokalen Außenabstand entfernt.
Schriftartenliste
Eine Schriftartenliste ist eine geordnete Liste von Schriftfamilien, die dem Browser erlaubt, auf eine andere Familie zurückzugreifen, wenn eine bevorzugte nicht verfügbar ist.
Eine Liste, die mit sans-serif ohne Anführungszeichen endet, bietet auch auf einem Gerät ohne die benannten Schriftarten eine passende Schrift.
Selektor mit Spezifität null
Ein Selektor mit Spezifität null trägt kein Gewicht zu einem Selektorvergleich bei; :where() entfernt auch das Gewicht seiner Argumente.
Der Selektor :where(#main) p bleibt leicht überschreibbar, weil nur der Absatz einen Typpunkt beiträgt.
Selektorliste
Eine Selektorliste ist eine durch Kommas getrennte Gruppe von Selektoren, die einen Deklarationsblock teilen und unabhängig voneinander auf Elemente zutreffen.
Die Regel für h1, h2, h3 kann allen drei Überschriftenebenen eine Schriftfamilie geben, ohne Verschachtelung zu verlangen.
Spezifität
Die Spezifität ist das ID-CLASS-TYPE-Gewicht eines Selektors und wird zum Vergleich konkurrierender Deklarationen verwendet, nachdem ihre früheren Kaskadenprioritäten gleichauf liegen.
Ein ID-Selektor kann viele Klassen in derselben Prioritätsgruppe übertreffen, weil die ID-Spalte zuerst verglichen wird.
Spezifitätstripel (ID-CLASS-TYPE)
Ein Spezifitätstripel (ID-CLASS-TYPE) erfasst die Anzahl von IDs, klassenartigen und typartigen Selektoren in drei getrennt verglichenen Spalten.
Der Selektor a[href]:hover hat das Tripel 0-2-1, wobei das Attribut und hover als CLASS gezählt werden.
Standardmodus
Der Standardmodus ist der Darstellungsmodus des Browsers für Dokumente, der modernen Webstandards folgt und durch eine gültige HTML-Dokumenttypdeklaration ausgewählt wird.
Steht <!DOCTYPE html> an erster Stelle, wird das ältere Verhalten vermieden, das eine Seite im Quirks-Modus beeinflussen kann.
Stilbereich
Der Stilbereich ist eine Ansicht der Entwicklerwerkzeuge mit den Regeln, die auf ein ausgewähltes Element zutreffen, einschließlich der Deklarationen, die in der Kaskade unterliegen.
Eine durchgestrichene Farbe im Stilbereich hilft zu erklären, warum ein Absatz den Wert einer anderen Regel anzeigt.
Stilherkunft
Die Stilherkunft gibt an, ob CSS vom Autor, vom Leser oder vom Browser stammt, und bildet einen Schritt der Kaskadenpriorität.
Eine normale Autorenregel kann die Standardgröße einer Browserüberschrift ersetzen, ohne deren Selektorgewicht zu erreichen.
Strukturelle Pseudoklasse
Eine strukturelle Pseudoklasse wählt Elemente anhand ihrer Position unter Geschwisterelementen aus, etwa das erste oder jedes zweite Kindelement.
Ein Absatz nach einer Überschrift ist der erste Absatz, trifft aber nicht auf p:first-child zu.
Stylesheet
Ein Stylesheet ist eine Sammlung von CSS-Regeln, die ein Browser auf ein Dokument anwendet. Es wird häufig in einer separaten Datei gespeichert, die mehrere Seiten gemeinsam nutzen.
Ein HTML-Link auf css/styles.css lässt eine Seite ihre Gestaltung aus der Datei im benachbarten Ordner laden.

T

Textausrichtung
Die Textausrichtung positioniert den Inline-Inhalt eines Blocks innerhalb seines Zeilenraums, mit Auswahlmöglichkeiten wie start, end, center und justify.
Den Text innerhalb eines Absatzes über die volle Breite zu zentrieren macht die Absatzbox weder schmaler noch verschiebt es ihre Ränder.
Textdekoration
Textdekoration zeichnet Linien wie eine Unter- oder Durchstreichung auf Text, mit optionalen Einstellungen für Stil, Farbe und Stärke.
Ein Link kann eine Unterstreichung als erkennbares Merkmal behalten, während eine Hover-Regel nur die Stärke der Linie erhöht.
Typselektor
Ein Typselektor trifft anhand ihres HTML-Namens auf Elemente zu und lässt eine CSS-Regel für jedes Element einer ausgewählten Art gelten.
Der Selektor p kann Absatzabstände auf der ganzen Seite festlegen, ohne jedem Absatz eine Klasse zuzuweisen.

U

Umwandlung der Groß- und Kleinschreibung
Die Umwandlung der Groß- und Kleinschreibung ändert mit CSS die angezeigte Schreibweise von Text, ohne den im HTML gespeicherten Wortlaut umzuschreiben.
Eine Beschriftung in Großbuchstaben kann aus HTML in normaler Groß- und Kleinschreibung stammen, sodass der ursprüngliche Wortlaut im Dokument erhalten bleibt.
Universalselektor
Der Universalselektor * trifft auf jedes Element zu, trägt aber null zur Spezifität bei und ist daher für allgemeine Standardstile und CSS-Resets nützlich.
Eine Regel für * kann Außenabstände zurücksetzen, während ein Klassenselektor später mit höherer Spezifität Abstände festlegen kann.

Ü

Überlauf
Überlauf ist Inhalt, der über die erlaubten Maße einer Box hinausragt. Er wird durch Werte wie visible, hidden, scroll und auto gesteuert.
Ein Codeblock mit overflow: auto kann seine lange Zeile scrollbar machen, ohne die ganze Seite zu verbreitern.

V

Variable Schrift
Eine variable Schrift speichert einen Bereich von Schriftvariationen, etwa Strichstärken, in einer einzigen Ressource, statt für jeden Schriftschnitt eine eigene statische Datei zu benötigen.
Eine einzige Datei einer variablen Schrift kann mehrere angeforderte Strichstärken liefern, wenn ihr deklarierter Bereich sie abdeckt.
Vererbung
Vererbung ist der Vorgang, bei dem ein Element für eine vererbte Eigenschaft den Wert seines Elternelements erhält, wenn kein lokaler Wert ihn ersetzt.
Die Schriftfamilie eines body kann gewöhnliche Absätze erreichen, ohne dass jeder Absatz eine weitere Schriftdeklaration braucht.
Viewport-Einheit
Eine Viewport-Einheit misst einen Anteil des Viewports des Browsers; vw verwendet die Breite und vh die Höhe als Bezugsgröße.
Ein Wert von 10vh beträgt 80px, wenn die Viewport-Höhe 800 CSS-Pixel beträgt, selbst innerhalb eines niedrigeren Containers.

W

Webfont
Ein Webfont ist eine für die Verwendung auf einer Seite heruntergeladene Schriftressource. Damit kann ein Design einen Schriftschnitt anbieten, der nicht auf dem Gerät des Lesers installiert ist.
Eine Seite kann zuerst eine Ersatzschrift und nach dem Laden der WOFF2-Datei ihren ausgewählten Webfont anzeigen.

Z

Zeilenhöhe
Die Zeilenhöhe legt die für eine Textzeile verwendete Höhe fest; ein einheitenloser Wert wirkt als Faktor für die eigene Schriftgröße des Elements.
Bei 20px Textgröße ergibt eine einheitenlose Zeilenhöhe von 1,5 Zeilen mit 30px Höhe und kann für größere Kindelemente passend skalieren.
Zusammenfallen von Außenabständen
Beim Zusammenfallen von Außenabständen verbinden sich bestimmte angrenzende vertikale Außenabstände von Blöcken zu einem Abstand, wobei der größte positive und der stärkste negative Wert verwendet werden.
Angrenzende positive Außenabstände von 18px und 30px erzeugen beim Zusammenfallen eine Lücke von 30px, während horizontale Außenabstände getrennt bleiben.
Zusammengesetzter Selektor
Ein zusammengesetzter Selektor verbindet Auswahlbedingungen ohne Kombinator und verlangt, dass ein Element alle diese Bedingungen erfüllt.
Der Selektor p.note erreicht einen Absatz mit der Klasse note, während p .note ein Nachfahrenelement verlangt.

#

!important-Deklaration
Eine !important-Deklaration ist eine mit !important gekennzeichnete CSS-Deklaration, die dadurch Vorrang vor normalen Deklarationen derselben Herkunft erhält.
Eine wichtige Autorenfarbe kann eine normale Inline-Farbe übertreffen, selbst wenn der Stylesheet-Selektor nur p lautet.
@font-face-Regel
Eine @font-face-Regel weist einer Schriftressource einen CSS-Familiennamen und Merkmale des Schriftschnitts zu, sodass sie in einer Schriftartenliste verwendet werden kann.
Die Deklaration der Schriftfamilie muss dem in der Regel gewählten Namen entsprechen, nicht dem Dateinamen in ihrer Quell-URL.

Über diese Einheit

Von StudeliFehler melden

Erstelle deine eigenen Lernmaterialien

Mach aus deinen Notizen, Folien und Dokumenten Lernleitfäden, Übungsfragen, Karteikarten und 6 weitere Tools.

Jetzt starten