CSS-Box-Modell: Margin, Padding, Border und Display

CSS-Box-Modell-Visualisierer

CSS-Box-Modell: Margin vs. Padding, Border, Display | We.Inc

Verschiebe Regler für Inhalt, Padding, Border und Margin und sieh zu, wie sich das Box-Modell neu zeichnet, mit box-sizing, Margin Collapsing, Rahmenstilen und allen display-Werten im Live-Vergleich.

Jedes Element wird als verschachtelte Rechtecke gezeichnet: der Inhalt, dann das Padding (Raum innerhalb des Rahmens, mit dem Hintergrund gefüllt), dann der Rahmen (Border), dann die Margin (transparenter Raum außen, der Nachbarn wegschiebt). Mit box-sizing: border-box schließt die gesetzte Breite Padding und Rahmen ein, wodurch Layouts viel vorhersehbarer werden. Die Eigenschaft display bestimmt, wie Boxen fließen.

Die vier Ebenen, von innen nach außen

Bewege die vier Regler, und das Diagramm, die gemessene Gesamtgröße und das CSS ändern sich gemeinsam. Unter dem Visualisierer kannst du box-sizing umschalten, zusehen, wie zwei Margins zu einer zusammenfallen, und block, inline, inline-block, flex, grid und none nebeneinander an denselben drei Elementen vergleichen.

Häufige Fragen

Was ist der Unterschied zwischen Margin und Padding?

Padding liegt innerhalb des Rahmens, wird also vom Hintergrund des Elements gefüllt und gehört zu seiner Klickfläche. Margin liegt außerhalb des Rahmens, ist immer transparent und trennt das Element nur von anderen. Vertikale Margins zwischen Blöcken können außerdem zusammenfallen, Padding dagegen nie.

Warum ist mein Element breiter als die gesetzte Breite?

Beim Standard box-sizing: content-box gilt width nur für den Inhalt, und Padding plus Rahmen kommen obendrauf. Eine 300px-Box mit 20px Padding und einem 2px-Rahmen wird 344px breit dargestellt. Stell auf box-sizing: border-box um, dann bleibt sie 300px breit, und der Inhalt schrumpft passend.

Wann fallen Margins zusammen?

Obere und untere Margins von Block-Boxen im normalen Fluss verschmelzen, wenn sie sich berühren: zwischen Geschwistern und zwischen einem Elternelement und seinem ersten oder letzten Kind, wenn kein Rahmen, kein Padding und kein Inline-Inhalt sie trennt. Die größere Margin gewinnt. In Flex- oder Grid-Containern und horizontal fallen Margins nie zusammen.

Was ist der Unterschied zwischen display: none und visibility: hidden?

display: none entfernt das Element vollständig aus dem Layout, der Platz schließt sich also, und Screenreader überspringen es. visibility: hidden hält den Platz frei, zeichnet aber nichts, und der Inhalt ist auch für assistive Technologien verborgen. opacity: 0 behält sowohl den Platz als auch die Möglichkeit, das Element anzuklicken oder zu fokussieren.

Kann ich bei einem Inline-Element eine Breite setzen?

Nein. Breite, Höhe und vertikale Margins werden bei einer einfachen Inline-Box wie einem span ignoriert. Vertikales Padding wird gezeichnet, schiebt aber die Zeilen nicht auseinander. Ändere es in inline-block oder mach das Elternelement zu einem Flex-Container, dann greifen diese Größen.

content-box und border-box in Zahlen

Rahmen jenseits einer einfachen Linie

Wie display die Box verändert

Margin oder Padding? Wähle nach Aufgabe

Was du nehmen solltest

Margin Collapsing live

Das erste Paar zeigt zwei Geschwister, deren Margins von 24px und 40px aufeinandertreffen: Der Abstand beträgt 40px, nicht 64px. Das zweite Paar liegt in einem flow-root-Container, der das Verschmelzen von Eltern- und Kind-Margins verhindert, und das dritte nutzt flex, wo nichts zusammenfällt.

Zusammenfallen bei Geschwistern und zwischen Eltern und Kind

Bearbeite die Margins und beobachte die Abstände. Auch padding-top: 1px an der äußeren Box verhindert das Verschmelzen von Eltern und Kind.

Rahmenstile und Radius

Alle acht sichtbaren Rahmenstile

groove, ridge, inset und outset schattieren den Rahmen, um Tiefe vorzutäuschen. Sie sehen ab 4px Breite am besten aus.

Radius-Formen: abgerundet, Pille, Kreis, Ellipse

Ein riesiger Radius wie 999px macht eine Pille beliebiger Länge. 50% auf einem Quadrat ergeben einen Kreis.

Alle display-Werte an denselben drei Elementen

display-Werte im Vergleich

block, inline, inline-block, flex und grid nebeneinander

Jede Zeile enthält dieselben drei spans mit width: 80px und Padding. Nur inline ignoriert die Breite.

display: none vs. visibility: hidden vs. opacity: 0

Drei Arten des Ausblendens im Vergleich

Das mittlere Element auf drei Arten ausgeblendet

Achte auf die Lücke, die visibility und opacity hinterlassen, und auf die geschlossene Lücke bei display: none.

Der border-box-Reset

border-box überall anwenden

Die Pseudoelemente sind eingeschlossen, weil sie ebenfalls Boxen sind. Tailwinds Preflight enthält diese Regel bereits.

Tailwind-Entsprechungen

Box-Modell-Utilities in Tailwind (Standard-Abstandsskala, 1 Einheit = 0.25rem)

Box-Modell-Visualisierer

Margin-Ebene

Gerenderte Box (Rahmenkante)

Belegter Platz, inklusive Margins

Gelb ist die Margin, die blaue Linie ist der Rahmen, Grün ist das Padding, Hellblau ist der Inhalt.

Rahmenbreite

CSS kopieren

Kostenlos starten · Keine Kreditkarte nötig

Verwandt: Ratgeber

Produkt

Für wen

Funktionen

Ressourcen

Unternehmen

Sitemap