Interviewfragen zu HTML und CSS mit Antworten
HTML, CSS, Flexbox, Grid, Tailwind, Responsive Design, Barrierefreiheit und Performance von Styles.
225 Fragen fürs Vorstellungsgespräch zu HTML und CSS mit Antworten und Erklärungen: Level Junior, Middle und Senior. Beispielfragen, Online-Tests und Programmieraufgaben.
- HTML
- CSS
- Flexbox
- Grid
- Tailwind
Fragen nach Level
Junior
Grundbegriffe und Syntax · 50 Fragen
Middle
Praxis, Feinheiten und Optimierung · 50 Fragen
Senior
Architektur, Interna, Randfälle · 50 Fragen
Beispielfragen
Ein paar Fragen aus jedem Level mit richtiger Antwort und Erklärung.
HTML und CSS · Junior
- Warum beginnen HTML-Dokumente mit
<!DOCTYPE html>?Antwort zeigen
Richtige Antwort: Um den Standardmodus statt des Quirks-Modus einzuschalten
DOCTYPE ist weder ein Tag noch ein Verweis auf eine Ressource. Es sagt dem Browser, dass die Seite modernen Standards folgt, und schaltet den Standardmodus ein. Ohne es fällt der Browser in den Quirks-Modus und bildet Fehler alter Browser nach (etwa ein anderes Box-Modell). Die Kodierung setzt
<meta charset="utf-8">, nicht DOCTYPE. - Welche Gruppe enthält nur semantische HTML5-Elemente?
Antwort zeigen
Richtige Antwort:
<header>,<nav>,<main>,<article>,<footer>Semantische Elemente beschreiben die Bedeutung von Inhalt: Kopfbereich, Navigation, Hauptinhalt, eigenständiger Artikel, Fußbereich.
<div>und<span>sind neutrale Container ohne Bedeutung,<b>und<i>sind präsentationell (Hervorhebung ohne Wichtigkeit). Semantik hilft Screenreadern, Suchmaschinen und der Lesbarkeit des Codes. - Wie viele sichtbare
<main>-Elemente darf eine Seite haben, und wofür ist es?Antwort zeigen
Richtige Antwort: Eines - es enthält den eindeutigen Hauptinhalt der Seite
<main>markiert den Hauptinhalt des Dokuments, der für die Seite eindeutig ist (ohne Header, Menü und Footer). Sichtbar darf nur eines sein (weitere brauchen das Attributhidden). Es ist eine Landmark für Screenreader: Nutzer springen direkt zum Inhalt.<section>ist ein thematischer Abschnitt, kein Ersatz für<main>. - Wie unterscheidet sich
<div>standardmäßig von<span>?Antwort zeigen
Richtige Antwort:
<div>ist ein Block-Element,<span>ein Inline-Element<div>hat standardmäßigdisplay: block: Es nimmt die volle Breite des Elternelements ein und beginnt in einer neuen Zeile.<span>hatdisplay: inline: Es fließt im Text und ist so breit wie sein Inhalt. Keines trägt Semantik - beide sind Container zum Gruppieren und Stylen.
HTML und CSS · Middle
- Welche Spezifität hat der Selektor
nav#main .item:hover > a::before?Antwort zeigen
Richtige Antwort: (1, 2, 3) - eine ID, Klasse + Pseudoklasse, zwei Typen + Pseudoelement
Man zählt nach Spalten: IDs -
#main(1); Klassen, Attribute und Pseudoklassen -.itemund:hover(2); Typen und Pseudoelemente -nav,a,::before(3). Kombinatoren (>, Leerzeichen) tragen keine Spezifität bei. Eine Pseudoklasse wiegt wie eine Klasse, ein Pseudoelement wie ein Typselektor. - Wie überschreibt man eine
!important-Regel einer fremden Bibliothek, ohne ihren Code anzufassen?Antwort zeigen
Richtige Antwort: Eine eigene Regel ebenfalls mit
!importantund spezifischerem Selektor schreibenEine normale Regel schlägt
!importantnie, egal wie spezifisch sie ist. Zwischen mehreren!important-Deklarationen gelten wieder Spezifität und Reihenfolge. Weitere Möglichkeiten: ein Inline-Style mit!importantoder Cascade Layers - für!importantist die Reihenfolge der Layer umgekehrt. Am besten verzichtet man im eigenen Code auf!important. - Wozu wird die Kurzform
flex: 1ausgeschrieben?Antwort zeigen
Richtige Antwort:
flex-grow: 1; flex-shrink: 1; flex-basis: 0%flex: 1=1 1 0%: Die Basisgröße ist null, also wird der ganze Platz streng im Verhältnis zuflex-growaufgeteilt - die Spalten werden unabhängig vom Inhalt gleich.flex: auto=1 1 auto- geteilt wird nur der freie Platz über die Inhaltsgröße hinaus.flex: none=0 0 auto. - Wie unterscheidet sich
flex-basisbei einem Flex-Item in einer Zeile (flex-direction: row) vonwidth?Antwort zeigen
Richtige Antwort:
flex-basisist die Anfangsgröße auf der Hauptachse; ist es nichtauto, hat es Vorrang vorwidthflex-basissetzt die Anfangsgröße des Items auf der Hauptachse, aus dergrowundshrinkberechnet werden. Beiflex-basis: autowirdwidthgenutzt (oderheightin einer Spalte). Beiflex-direction: columngiltflex-basisfür die Höhe statt die Breite - das ist der entscheidende Unterschied zuwidth.
HTML und CSS · Senior
- Wie beeinflussen Cascade Layers
@layerdie Priorität von Styles?Antwort zeigen
Richtige Antwort: Die Reihenfolge der Layer schlägt die Spezifität: der spätere Layer gewinnt
Die Kaskade vergleicht zuerst die Layer und erst dann die Spezifität innerhalb eines Layers. Deshalb schlägt
.btnim Layercomponentsein#app .btnim früheren Layerbase. Styles ohne Layer sind stärker als jeder Layer. Für!importantist die Reihenfolge umgekehrt: Wichtige Deklarationen in einem früheren Layer gewinnen. Tailwind v4 baut seine Styles auf den Layerntheme,base,componentsundutilitiesauf. - Wie stehen normale (nicht
!important) Styles mit und ohne Layer zueinander?Antwort zeigen
Richtige Antwort: Styles ohne Layer sind stärker als jeder Layer
Styles ohne Layer landen implizit in einem „letzten“ Layer und schlagen alle benannten Layer. So kann man fremdes CSS in
@layer vendorpacken und es leicht mit eigenen Styles überschreiben. Bei!importantkehrt sich die Logik um: Wichtige Styles in Layern schlagen wichtige Styles ohne Layer. - Was macht
@scope (.card) to (.card__content) { img { ... } }?Antwort zeigen
Richtige Antwort: Stylt
imginnerhalb von.card, aber nicht innerhalb von.card__content@scopelegt eine Wurzel des Geltungsbereichs und eine optionale „untere Grenze“ fest (Donut Scope): Styles gelten innerhalb von.card, reichen aber nicht in.card__contentund seine Nachfahren. Außerdem gewinnt bei gleicher Spezifität die Regel mit der näheren Wurzel (Scoping Proximity). Ein Shadow DOM erzeugt@scopenicht. - Welches Problem löst
subgrid?Antwort zeigen
Richtige Antwort: Es gibt einem verschachtelten Grid die Spuren des Elternelements, sodass Teile über Karten fluchten
Mit
grid-template-rows: subgriderbt ein Kind-Grid die Linien des Elternelements. Das klassische Beispiel ist eine Reihe Karten, deren Titel, Texte und Buttons fluchten sollen, auch wenn ein Titel zweizeilig umbricht. Ohne subgrid richtet sich jede Karte unabhängig aus.
Kombinierte Tests mit diesem Thema
Fragen aus mehreren Themen auf einmal, wie im Vorstellungsgespräch für eine konkrete Stelle.
Programmieraufgaben
Schreib die Lösung direkt im Browser, und Tests prüfen sie sofort. Klassiker aus Vorstellungsgesprächen zu JavaScript (debounce, deepClone, Promise.all, LRU-Cache), zu TypeScript (Generics, Narrowing und Utility Types, geprüft von einem echten Compiler), Backend-Logik in Node.js (Middleware, Rate Limits, Job-Queues), SQL-Abfragen in echtem PostgreSQL und zu React: Komponenten und Hooks wie eine Aufgabenliste, Tabs, useDebounce und useInterval.
Aufgaben öffnen →