Übungsaufgaben zu den CSS-Grundlagen: Selektoren, Box-Modell und Layout für Mitfahrgesuche
https://bildung.social/@oerinformatik/
https://oer-informatik.de/css-grundlagen-uebungsaufgaben
CSS, Selektor, Kaskade, Spezifität, Box-Modell, Flexbox, Grid, Media Queries, Kontrast, Übungsaufgaben, Prüfungsvorbereitung
tl/dr; (ca. 56 min Lese- und Bearbeitungszeit): Übungen zu den CSS-Grundlagen rund um die Mitfahrgesuche des Mitfahrlabors: Du benennst die Bestandteile einer Regel, ordnest Selektoren Elementen zu, sagst mit der Spezifität vorher, welche Regel gilt, berechnest Maße mit dem Box-Modell, gestaltest eine Liste von Gesuchen mit Flexbox, findest den Fehler in einer Media Query für einen hochkant montierten Monitor und prüfst Farbkontraste nach WCAG 2.2 [AI-Assisted]. (Zuletzt geändert am 11.11.2026)
Dieser Artikel ist Teil einer Artikelreihe über die Grundlagen der Webentwicklung: HTML / CSS / Übungsaufgaben zu CSS / Bootstrap
Diese Übungsaufgaben gehören zum Artikel CSS-Grundlagen: Webseiten gestalten mit Selektoren, Box-Modell, Flexbox und Grid. Alle Aufgaben drehen sich um die Mitfahr-App „Mitfahrlabor“: Neben den Fahrtangeboten soll der Flurmonitor künftig auch Mitfahrgesuche zeigen, also Wünsche von Auszubildenden ohne Auto, die zu einer bestimmten Zeit an einem Haltepunkt abgeholt werden möchten.
Hinweise zur Bearbeitung: Bis zur Teil-1-Prüfung der IT-Berufe solltest Du die Basiskompetenz beherrschen, also Aufgabe 1.1 und Aufgabe 1.2. Als FIA, FIDP oder FIDV musst Du zur Teil-2-Prüfung Aufgaben auf Kernkompetenz-Ebene lösen können, das sind Aufgabe 2.1, Aufgabe 2.2 und Aufgabe 2.3. Von FIA wird zusätzlich erwartet, dass ihnen Aufgaben auf Profilkompetenz-Ebene (Aufgabe 3.1 und Aufgabe 3.2) keine Probleme bereiten. Notiere Deine Antworten zuerst vollständig, bevor Du die Beispiellösung aufklappst. CSS-Code kannst Du im Browser, mit den Entwicklerwerkzeugen (F12) und mit dem W3C-CSS-Validator ausprobieren; andere fachlich richtige Lösungen sind ebenso richtig.
Du möchtest eigene Aufgaben zum Üben von einem KI-Sprachmodell generieren lassen?
Kopiere den Text in ein KI-Sprachmodell Deiner Wahl und passe Kompetenzstufe, Anzahl, Bearbeitungszeit und Szenario bei Bedarf an. Wie die Aufgaben aufgebaut sind, beschreibt der Artikel Wie sind die Aufgaben aufgebaut?. Prüfe die Ergebnisse mit dem Lehrartikel: KI-Sprachmodelle machen Fehler.
Erstelle neue Übungsaufgaben zum Thema „CSS-Grundlagen: Selektoren, Box-
Modell und Layout für Mitfahrgesuche“.
Bauplan: Halte Dich an Aufbau, Kompetenzstufen, Operatoren,
Anforderungsbereiche, Punkte und Zeitschätzung, die im Artikel
https://oer-informatik.de/aufgaben-aufbau beschrieben sind.
Fachliche Grundlage:
- https://oer-informatik.de/css-grundlagen
- https://oer-informatik.de/szenario-mitfahrlabor
- Stilbeispiel: https://oer-informatik.de/css-grundlagen-uebungsaufgaben
Die Aufgaben sollen Inhalte zu diesen Schlagwörtern abdecken:
- CSS
- Selektor
- Kaskade
- Spezifität
- Box-Modell
- Flexbox
- Grid
- Media Queries
- Kontrast
Kompetenzstufe: Kernkompetenz (alternativ: Basiskompetenz, Profilkompetenz, Expertise)
Anzahl: 1 Aufgabe mit Teilaufgaben
Bearbeitungszeit in Minuten ca.: <5 bis 30 min>
Szenario: eines der Szenarien aus dem Bauplan
Vorgehen:
1. Lies zuerst die verlinkten Artikel. Kannst Du keine Webseiten
abrufen, sag mir das, statt zu raten.
2. Steht bei einer Angabe noch ein Platzhalter in <…>, frag mich
zuerst danach. Richte Punkte und Zahl der Teilaufgaben nach der
Bearbeitungszeit (ca. 0,9 min je Punkt).
3. Gib je Aufgabe Titel mit Kompetenzstufe, Ausgangssituation und
Teilaufgaben mit Operator und Punktzahl aus, dazu die geschätzte
Bearbeitungszeit.
4. Gib die Beispiellösungen mit Punkteverteilung erst aus, wenn ich
danach frage.
Aufgabe 1.1: Bestandteile einer CSS-Regel benennen (Basiskompetenz)
Im Stylesheet für die Liste der Mitfahrgesuche steht diese Regel:
.gesuch .ort {
font-weight: bold;
font-size: 1.3rem;
}Ergänze die Tabelle. (6 Punkte)
| Frage | Antwort |
|---|---|
| Wie lautet der Selektor der Regel? | |
| Um welche Art von Selektor handelt es sich, und welche Elemente wählt er aus? | |
| Wie viele Deklarationen enthält der Deklarationsblock? | |
| Wie heißen Eigenschaft und Wert der zweiten Deklaration? | |
Wie groß wird die Schrift in Pixeln, wenn für html die Schriftgröße 125 % von 16 px gilt? |
|
Was passiert, wenn statt 1.3rem versehentlich 1,3rem notiert wird? |
Je Zeile 1 Punkt:
| Frage | Antwort |
|---|---|
| Selektor | .gesuch .ort |
| Art und Auswahl | Nachfahrenselektor aus zwei Klassenselektoren: alle Elemente mit der Klasse ort, die irgendwo innerhalb eines Elements mit der Klasse gesuch liegen |
| Anzahl der Deklarationen | zwei |
| zweite Deklaration | Eigenschaft font-size, Wert 1.3rem |
| Schriftgröße | 1,3 · 20 px = 26 px |
1,3rem |
Der Wert ist ungültig. Der Browser ignoriert nur diese Deklaration ohne Fehlermeldung; die Schrift behält ihre geerbte Größe, fett wird sie trotzdem. |
Aufgabe 1.2: Selektoren Elementen zuordnen (Basiskompetenz)
Die Seite mit den Gesuchen beginnt mit diesem HTML-Ausschnitt. Die Buchstaben in den Kommentaren bezeichnen jeweils das Element, das in derselben Zeile beginnt; (C) und (D) bezeichnen die beiden Links.
<nav> <!-- (A) -->
<ul> <!-- (B) -->
<li><a href="#gesuche">Gesuche</a></li> <!-- (C) -->
<li><a href="https://oer-informatik.de/szenario-mitfahrlabor">Über das Projekt</a></li> <!-- (D) -->
</ul>
</nav>
<section id="gesuche"> <!-- (E) -->
<h2>Offene Gesuche</h2> <!-- (F) -->
<ul class="gesuche"> <!-- (G) -->
<li class="gesuch bald">…</li> <!-- (H) -->
<li class="gesuch">…</li> <!-- (I) -->
<li class="gesuch">…</li> <!-- (J) -->
</ul>
</section>Gib für jeden Selektor an, welche der Elemente (A) bis (J) er auswählt. Wählt ein Selektor keines davon aus, notiere „keines“. (7 Punkte)
| Selektor | ausgewählte Elemente |
|---|---|
nav > ul |
|
nav a |
|
a[href^="https://"] |
|
#gesuche h2 |
|
.gesuch.bald |
|
.gesuche li:nth-child(odd) |
|
section > li |
Je Zeile 1 Punkt:
| Selektor | ausgewählte Elemente | Begründung |
|---|---|---|
nav > ul |
(B) | ul ist direktes Kind von nav; (G) liegt nicht in nav. |
nav a |
(C), (D) | beide Links liegen innerhalb von nav |
a[href^="https://"] |
(D) | Nur dieser href beginnt mit https://. |
#gesuche h2 |
(F) | h2 innerhalb des Elements mit id="gesuche" |
.gesuch.bald |
(H) | Element mit beiden Klassen |
.gesuche li:nth-child(odd) |
(H), (J) | erstes und drittes Kind der Liste |
section > li |
keines | Die li sind Kinder von ul, nicht direkte Kinder von section. |
Aufgabe 2.1: Vorhersagen, welche Regel gilt (Kernkompetenz)
Für die Tabelle der Rückfahrten haben mehrere Personen im Projektteam Regeln ergänzt. Das HTML sieht so aus:
<section id="nach-hause">
<table class="abfahrten">
<tbody>
<tr class="heute">
<td>16:15</td>
<td class="plaetze wenig">1</td>
</tr>
</tbody>
</table>
</section>Im Stylesheet stehen in dieser Reihenfolge:
/* Regel 1 */ td { color: #1b1b1b; }
/* Regel 2 */ .abfahrten td { color: #1d4f91; }
/* Regel 3 */ #nach-hause .plaetze { color: #5c3d00; }
/* Regel 4 */ td.plaetze.wenig { color: #b3261e; }
/* Regel 5 */ tr.heute { color: #0b6b2e; font-weight: bold; }Gib die Spezifität der fünf Selektoren in der Form (IDs, Klassen, Elemente) an. (5 Punkte)
Bestimme, in welcher Farbe die Zelle mit der Uhrzeit
16:15und die Zelle mit der1angezeigt werden, und begründe. (3 Punkte)Erkläre, ob die beiden Zellen fett dargestellt werden. (2 Punkte)
Die Person, die Regel 4 geschrieben hat, wundert sich, warum ihre Farbe nicht erscheint. Sie schlägt vor,
!importantzu ergänzen. Beurteile den Vorschlag und nenne eine bessere Lösung. (2 Punkte)
- Je Selektor 1 Punkt:
| Regel | Selektor | Spezifität |
|---|---|---|
| 1 | td |
(0,0,1) |
| 2 | .abfahrten td |
(0,1,1) |
| 3 | #nach-hause .plaetze |
(1,1,0) |
| 4 | td.plaetze.wenig |
(0,2,1) |
| 5 | tr.heute |
(0,1,1), gilt aber für die Zeile, nicht für die Zellen |
Zelle
16:15: Regeln 1 und 2 treffen zu, Regel 2 ist spezifischer, also#1d4f91(Blau) (1 Punkt). Zelle1: Regeln 1 bis 4 treffen zu; Regel 3 hat als einzige eine ID und gewinnt, obwohl Regel 4 zwei Klassen hat und später steht. Die Zelle wird#5c3d00(Dunkelbraun) (2 Punkte). Die Farbe aus Regel 5 kommt bei keiner Zelle an: Vererbung greift nur, wenn für das Element selbst keine Deklaration zutrifft, und Regel 1 gilt für jede Zelle.Ja (1 Punkt). Für
font-weightgibt es keine Regel, die direkt fürtdgilt. Die Zellen erben den Wertboldvon ihrem Elternelementtr(1 Punkt).!importantwürde wirken, aber jede spätere Änderung erschweren, weil dann nur noch ein weiteres!importanthilft (1 Punkt). Besser ist, die ID aus Regel 3 zu entfernen (z. B..abfahrten .plaetzemit (0,2,0)), sodass Regel 4 mit (0,2,1) gewinnt, oder Regel 4 mit der ID spezifischer zu machen, etwa#nach-hause td.plaetze.wenigmit (1,2,1) (1 Punkt).
Aufgabe 2.2: Maße mit dem Box-Modell berechnen (Kernkompetenz)
Jedes Gesuch soll als Kärtchen erscheinen. Für die Kärtchen gilt bei einer Grundschrift von 20 px (html { font-size: 125%; }):
.gesuch {
width: 15rem;
padding: 0.8rem;
border: 3px solid #1d4f91;
margin: 0.5rem;
}Die Kärtchen stehen in einem Flex-Container mit flex-wrap: wrap, dessen Inhaltsbereich 1000 px breit ist und der selbst keinen Innenabstand hat.
Berechne die sichtbare Breite (mit Rahmen) eines Kärtchens und den Platz, den es mit Außenabstand belegt. (2 Punkte)
Berechne beide Werte und die Breite des Inhaltsbereichs erneut, nachdem
box-sizing: border-boxergänzt wurde. (3 Punkte)Bestimme für beide Fälle, wie viele Kärtchen nebeneinander in eine Zeile passen. (2 Punkte)
Erläutere, warum die Hintergrundfarbe eines Kärtchens im Innenabstand zu sehen ist, im Außenabstand aber nicht. (1 Punkt)
Umrechnung: 15rem = 15 · 20 px = 300 px, 0.8rem = 16 px, 0.5rem = 10 px.
sichtbare Breite = 300 px + 2 · 16 px + 2 · 3 px = 338 px (1 Punkt); belegter Platz = 338 px + 2 · 10 px = 358 px (1 Punkt).
sichtbare Breite = 300 px (1 Punkt); belegter Platz = 300 px + 2 · 10 px = 320 px (1 Punkt); Inhaltsbereich = 300 px − 2 · 16 px − 2 · 3 px = 262 px (1 Punkt).
Ohne
border-box: 1000 px : 358 px ≈ 2,8, also 2 Kärtchen je Zeile (1 Punkt). Mitborder-box: 1000 px : 320 px ≈ 3,1, also 3 Kärtchen je Zeile (1 Punkt). Im Browser nachgemessen ergeben sich genau diese Werte.Der Hintergrund eines Elements reicht nach dem Box-Modell bis zum äußeren Rand des Rahmens, der Innenabstand gehört also zum Element. Der Außenabstand ist Abstand zu den Nachbarn und immer durchsichtig (1 Punkt).
Aufgabe 2.3: Die Liste der Mitfahrgesuche gestalten (Kernkompetenz)
Für den Flurmonitor gibt es eine neue Seite gesuche.html mit den offenen Mitfahrgesuchen. Wer kein Auto hat, gibt dort Haltepunkt, Richtung und ein Zeitfenster an, in dem die Abholung passt. Namen werden auf dem Monitor nicht gezeigt. Die Klasse bald kennzeichnet Gesuche, deren Zeitfenster in weniger als einer Stunde beginnt. Im main der Seite steht:
<section id="gesuche">
<h2>Gesucht am <time datetime="2026-11-16">Montag, 16. November</time></h2>
<ul class="gesuche">
<li class="gesuch bald">
<p class="ort">Gütersloh</p>
<p>Hauptbahnhof, ZOB Steig 3</p>
<p>zur Schule, <time datetime="06:30">06:30</time> bis <time datetime="07:00">07:00</time> Uhr</p>
</li>
<li class="gesuch">
<p class="ort">Werther (Westf.)</p>
<p>Kirchplatz</p>
<p>zur Schule, <time datetime="06:45">06:45</time> bis <time datetime="07:15">07:15</time> Uhr</p>
</li>
<li class="gesuch">
<p class="ort">Halle (Westf.)</p>
<p>Marktplatz</p>
<p>nach Hause, <time datetime="15:15">15:15</time> bis <time datetime="16:00">16:00</time> Uhr</p>
</li>
<li class="gesuch">
<p class="ort">Bad Salzuflen</p>
<p>Busbahnhof</p>
<p>nach Hause, <time datetime="16:00">16:00</time> bis <time datetime="16:45">16:45</time> Uhr</p>
</li>
</ul>
</section>Die Datei css/gesuche.css ist bereits eingebunden und enthält:
:root {
--farbe-akzent: #1d4f91;
--farbe-warnung: #fff1c2;
--abstand: 1rem;
}
html {
font-size: 125%;
}
body {
margin: 0;
padding: var(--abstand);
font-family: "Segoe UI", Arial, sans-serif;
color: #1b1b1b;
}Ergänze css/gesuche.css um Regeln, die folgende Anforderungen erfüllen. Nutze die vorhandenen Variablen und ändere das HTML nicht. (8 Punkte)
Die Gesuche stehen ohne Aufzählungszeichen und ohne Einrückung nebeneinander, mit dem Abstand
--abstandzwischen den Kärtchen; reicht die Breite nicht, beginnt eine neue Zeile.Jedes Gesuch ist ein Kärtchen mit
15remBreite, Innenabstand--abstandund einem 2 px breiten Rahmen in der Akzentfarbe mit leicht abgerundeten Ecken.Die Absätze im Kärtchen haben keine Außenabstände.
Der Ort steht fett in
1.3rem.Gesuche mit der Klasse
baldsind mit der Warnfarbe hinterlegt und tragen zusätzlich vor dem Ort den fett gedruckten Text „Bald:“, damit die Information nicht allein über die Farbe vermittelt wird.
.gesuche {
display: flex;
flex-wrap: wrap;
gap: var(--abstand);
margin: 0;
padding: 0;
list-style: none;
}
.gesuch {
width: 15rem;
padding: var(--abstand);
border: 2px solid var(--farbe-akzent);
border-radius: 0.4rem;
}
.gesuch p {
margin: 0;
}
.gesuch .ort {
font-size: 1.3rem;
font-weight: bold;
}
.bald {
background-color: var(--farbe-warnung);
}
.bald::before {
content: "Bald: ";
font-weight: bold;
}Punkteverteilung: Flex-Container mit display: flex, flex-wrap und gap (2 Punkte), Aufzählungszeichen und Einrückung entfernt (list-style, padding/margin der Liste) (1 Punkt), Kärtchen mit Breite, Innenabstand, Rahmen und border-radius (2 Punkte), Absätze ohne Außenabstand (1 Punkt), Ort fett und groß (1 Punkt), .bald mit Hintergrund und Zusatztext über ::before (1 Punkt).
Die Regel .gesuch .ort setzt sich gegen .gesuch p durch, weil sie mit (0,2,0) spezifischer ist als (0,1,1); für die Schriftgröße spielt das aber keine Rolle, da .gesuch p keine Schriftgröße setzt. Eine Alternative für den Zusatztext ist ein span im HTML; das ist hier ausgeschlossen, weil das HTML unverändert bleiben soll. Mit box-sizing: border-box wären die Kärtchen genau 15rem breit; ohne sind sie 344 px breit. Beides ist richtig.
Aufgabe 3.1: Das Layout für einen hochkant montierten Monitor reparieren (Profilkompetenz)
Am zweiten Flurmonitor vor dem Lehrerzimmer sollen Gesuche, Angebote und der Hinweis der Schulverwaltung gemeinsam erscheinen. Das HTML enthält im main in dieser Reihenfolge <section id="gesuche">, <section id="angebote"> und <aside>. Das Stylesheet lautet:
@media (orientation: portrait) {
main {
grid-template-columns: 1fr;
grid-template-areas:
"gesuche"
"angebote"
"hinweis";
}
}
main {
display: grid;
grid-template-columns: 2fr 1fr;
grid-template-areas:
"gesuche angebote"
"gesuche hinweis";
gap: 1rem;
}
#gesuche {
grid-area: gesuche;
}
#angebote {
grid-area: angebote;
}
aside {
grid-area: hinweis;
}Skizziere, wie die drei Bereiche auf einem quer montierten Monitor angeordnet sind, und gib die Breitenverhältnisse an. (2 Punkte)
Nach der Montage meldet der Hausmeister: „Der Monitor hängt hochkant, aber die Seite sieht genauso aus wie auf dem Monitor im Eingang, nur schmaler.“ Erkläre die Ursache. (3 Punkte)
Das Team entscheidet sich für ein anderes Hochformat: Der Hinweis soll oben über die ganze Breite stehen, darunter Gesuche und Angebote gleich breit nebeneinander. Notiere die korrigierte Media Query und gib an, wo sie im Stylesheet stehen muss. (4 Punkte)
Im Hochformat erscheint der Hinweis nun als Erstes, im HTML steht das
asideaber am Ende. Beurteile, ob das ein Problem ist, und begründe. (2 Punkte)
- Zwei Spalten im Verhältnis 2 : 1 und zwei Zeilen. Links über beide Zeilen die Gesuche, rechts oben die Angebote, rechts unten der Hinweis (2 Punkte):
| Spalte 1 (2fr) | Spalte 2 (1fr) |
|---|---|
| gesuche | angebote |
| gesuche | hinweis |
Die Media Query steht vor der allgemeinen Regel für
main(1 Punkt). Media Queries erhöhen die Spezifität nicht: Beide Regeln haben den Selektormainmit (0,0,1) (1 Punkt). Bei gleicher Spezifität gewinnt die später notierte Regel, also überschreibt die allgemeine Regelgrid-template-columnsundgrid-template-areasauch im Hochformat (1 Punkt). In den Entwicklerwerkzeugen sind die Deklarationen der Media Query durchgestrichen.Die Media Query gehört ans Ende des Stylesheets, hinter die allgemeine Regel (1 Punkt):
@media (orientation: portrait) {
main {
grid-template-columns: 1fr 1fr;
grid-template-areas:
"hinweis hinweis"
"gesuche angebote";
}
}Zwei gleich breite Spalten (1 Punkt), Hinweis über beide Spalten (1 Punkt), Gesuche und Angebote in der zweiten Zeile (1 Punkt). Im Browser getestet: Bei 900 × 1600 px steht der Hinweis oben, darunter zwei Spalten mit je 434 px.
- Die sichtbare Reihenfolge weicht von der Reihenfolge im HTML ab. Wer mit der Tastatur oder einem Screenreader arbeitet, erreicht den Hinweis erst zuletzt (1 Punkt). Für einen Flurmonitor, der nicht bedient wird, ist das unkritisch; auf einer bedienbaren Seite sollte das
asideim HTML an den Anfang verschoben werden, oder der Hinweis bleibt auch im Hochformat am Ende (1 Punkt).
Aufgabe 3.2: Kontrastmängel finden und beheben (Profilkompetenz)
Ein Teammitglied hat für die Gesuche-Seite ein eigenes Farbschema entworfen. Die Grundschrift beträgt 20 px, der Seitenhintergrund ist weiß (#ffffff).
:root {
--text: #999999;
--akzent: #2a78d6;
--fokus: #ffcc00;
}
body {
color: var(--text);
background-color: #ffffff;
}
h2 {
font-size: 1.6rem;
font-weight: bold;
color: var(--akzent);
}
thead th {
font-weight: normal;
color: #ffffff;
background-color: var(--akzent);
}
a:focus-visible {
outline: 2px solid var(--fokus);
}
.gesuch {
border: 1px solid #dddddd;
}
.bald {
color: #c0392b;
}Ein Kontrastrechner liefert diese Werte:
| Vordergrund | Hintergrund | Kontrastverhältnis |
|---|---|---|
#999999 |
#ffffff |
2,85:1 |
#2a78d6 |
#ffffff |
4,42:1 |
#ffcc00 |
#ffffff |
1,51:1 |
#dddddd |
#ffffff |
1,36:1 |
#c0392b |
#ffffff |
5,44:1 |
Prüfe für den Fließtext, die Überschriften
h2, die Tabellenköpfe und den Fokusrahmen, ob sie die Anforderungen der WCAG 2.2 in Stufe AA erfüllen. Begründe jeweils mit dem passenden Grenzwert. (4 Punkte)Der Rahmen der Kärtchen hat einen noch geringeren Kontrast. Beurteile, ob das ein Mangel im Sinne der WCAG ist. (1 Punkt)
Die Regel
.balderfüllt die Kontrastanforderung. Erläutere, welcher andere Mangel trotzdem besteht, und wie er behoben wird. (2 Punkte)Schlage für die festgestellten Mängel geänderte Farben bzw. Deklarationen vor und gib an, wie Du ihre Eignung nachweist. (4 Punkte)
- Je Element 1 Punkt:
Fließtext
#999999auf Weiß: 2,85:1 liegt unter 4,5:1 für normalen Text, nicht erfüllt.Überschrift
h2: 1,6 · 20 px = 32 px fett gilt als großer Text, Grenzwert 3:1. Mit 4,42:1 erfüllt.Tabellenkopf: weiße Schrift auf
#2a78d6, 20 px, nicht fett, also normaler Text. 4,42:1 liegt knapp unter 4,5:1, nicht erfüllt.Fokusrahmen
#ffcc00auf Weiß: Für Bedienelemente und Fokusanzeigen gilt 3:1 (Erfolgskriterium 1.4.11); 1,51:1 ist nicht erfüllt.
Kein Mangel (1 Punkt): Der Rahmen ist Gestaltung und kennzeichnet kein Bedienelement. Die Kärtchen sind auch ohne Rahmen durch Abstand und Text erkennbar. Die 3:1-Regel gilt nur für Bedienelemente und für Grafiken, die zum Verständnis nötig sind.
Ob ein Gesuch bald beginnt, wird nur über die rote Textfarbe vermittelt (1 Punkt). Menschen mit Rot-Grün-Sehschwäche und Screenreader-Nutzende erhalten die Information nicht (Erfolgskriterium 1.4.1). Abhilfe: zusätzlich ein Text wie „Bald:“, z. B. über
.bald::before { content: "Bald: "; }oder besser direkt im HTML, oder ein deutliches Symbol mit Textalternative (1 Punkt).Mögliche Lösung (je Mangel 1 Punkt, Nachweis 1 Punkt):
:root {
--text: #595959; /* 7,0:1 auf Weiß */
--akzent: #1d4f91; /* 8,1:1 mit Weiß, auch für den Tabellenkopf */
--fokus: #b3261e; /* 6,5:1 auf Weiß */
}
a:focus-visible {
outline: 3px solid var(--fokus);
outline-offset: 2px;
}Alternativ für den Tabellenkopf: Schrift fett und mindestens 18,66 px, dann reicht 3:1. Nachweis: jede neue Kombination mit dem Farbwähler der Entwicklerwerkzeuge oder einem Kontrastrechner prüfen und die Werte dokumentieren; den Fokusrahmen zusätzlich per Tabulatortaste auf allen Hintergründen ansehen, auf denen Links stehen.
Links und weitere Informationen
zum Nachlesen: CSS-Grundlagen: Webseiten gestalten mit Selektoren, Box-Modell, Flexbox und Grid
zum Prüfen: W3C: CSS Validation Service
zu Kontrasten: WebAIM Contrast Checker
als Nachschlagewerk: MDN Web Docs: CSS-Referenz
Hinweis zur Nachnutzung als Open Educational Resource (OER)
Dieser Artikel und seine Texte, Bilder, Grafiken, Code und sonstiger Inhalt sind - sofern nicht anders angegeben - lizenziert unter CC BY 4.0. Nennung gemäß TULLU-Regel bitte wie folgt: “Übungsaufgaben zu den CSS-Grundlagen: Selektoren, Box-Modell und Layout für Mitfahrgesuche” von oer-informatik.de (H. Stein), Lizenz: CC BY 4.0. Der Artikel wurde unter https://oer-informatik.de/css-grundlagen-uebungsaufgaben veröffentlicht, die Quelltexte sind in weiterverarbeitbarer Form verfügbar im Repository unter https://gitlab.com/oer-informatik/programmierung/web-grundlagen. Erstellt mit KI-Assistenz; von mir umfassend redaktionell überarbeitet, geprüft und freigegeben. Stand: 11.11.2026.
[Kommentare zum Artikel lesen, schreiben] / [Artikel teilen] / [gitlab-Issue zum Artikel schreiben]
