CSS box model: margin, padding, border en display

CSS box model visualisatie

CSS box model: margin vs padding, border, display | We.Inc

Versleep schuifregelaars voor content, padding, border en margin en zie het box model opnieuw tekenen, met box-sizing, margin collapsing, borderstijlen en elke display-waarde live vergeleken.

Elk element wordt getekend als geneste rechthoeken: de content, dan padding (ruimte binnen de border, gevuld met de achtergrond), dan de border, dan margin (transparante ruimte daarbuiten die buren wegduwt). Met box-sizing: border-box omvat de breedte die u instelt ook padding en border, waardoor layouts veel voorspelbaarder worden. De display-property bepaalt hoe boxen vloeien.

De vier lagen, van binnen naar buiten

Beweeg de vier schuifregelaars en het diagram, de gemeten totale grootte en de CSS veranderen samen mee. Onder de visualisatie kunt u box-sizing omschakelen, twee margins zien samenvallen tot één, en block, inline, inline-block, flex, grid en none naast elkaar vergelijken op dezelfde drie items.

Veelgestelde vragen

Wat is het verschil tussen margin en padding?

Padding zit binnen de border, wordt dus gevuld door de achtergrond van het element en hoort bij het klikbare gebied. Margin zit buiten de border, is altijd transparant en scheidt het element alleen van andere. Verticale margins tussen blokken kunnen bovendien samenvallen, terwijl padding nooit samenvalt.

Waarom is mijn element breder dan de breedte die ik instelde?

Bij de standaard box-sizing: content-box geldt width alleen voor de content, en komen padding en border erbovenop. Een box van 300px met 20px padding en een border van 2px wordt 344px breed weergegeven. Schakel naar box-sizing: border-box en hij blijft 300px, waarbij de content krimpt om te passen.

Wanneer vallen margins samen?

Boven- en ondermargins van blokboxen in de normale flow versmelten als ze elkaar raken: tussen broers en zussen, en tussen een parent en zijn eerste of laatste child als geen border, padding of inline content ze scheidt. De grootste margin wint. Margins vallen nooit samen binnen flex- of gridcontainers, of horizontaal.

Wat is het verschil tussen display: none en visibility: hidden?

display: none haalt het element volledig uit de layout, dus de ruimte sluit zich en schermlezers slaan het over. visibility: hidden houdt de ruimte gereserveerd maar tekent niets, en de inhoud is ook verborgen voor hulptechnologie. opacity: 0 behoudt zowel de ruimte als de mogelijkheid om te klikken of te focussen.

Kan ik width instellen op een inline element?

Nee. Width, height en verticale margins worden genegeerd op een gewone inline box zoals een span. Verticale padding wordt wel getekend, maar duwt regels niet uit elkaar. Maak er inline-block van, of maak de parent een flexcontainer, en die afmetingen gaan gelden.

content-box versus border-box in getallen

Borders voorbij een gewone lijn

Hoe display de box verandert

Margin of padding? Kies op basis van de taak

Welke u moet gebruiken

Margin collapsing, live te zien

Het eerste paar toont twee broers en zussen waarvan de margins van 24px en 40px elkaar raken: de ruimte is 40px, niet 64px. Het tweede paar zit in een flow-root-container, die voorkomt dat de margins van parent en child versmelten, en het derde gebruikt flex, waarin niets samenvalt.

Samenvallen tussen siblings en tussen parent en child

Pas de margins aan en kijk naar de tussenruimtes. padding-top: 1px toevoegen aan de buitenste box voorkomt ook dat parent en child versmelten.

Borderstijlen en radius

Alle acht zichtbare borderstijlen

groove, ridge, inset en outset geven de border schaduw om diepte te suggereren. Ze zien er het best uit bij 4px of breder.

Radiusvormen: afgerond, pil, cirkel, ellips

Een enorme radius zoals 999px maakt een pil van elke lengte. 50% op een vierkant geeft een cirkel.

Elke display-waarde op dezelfde drie items

display-waarden vergeleken

block, inline, inline-block, flex en grid naast elkaar

Elke rij bevat dezelfde drie spans met width: 80px en padding. Alleen inline negeert de breedte.

display: none vs visibility: hidden vs opacity: 0

Drie manieren om te verbergen, vergeleken

Het middelste item op drie manieren verborgen

Let op de lege ruimte die visibility en opacity achterlaten, en de gesloten ruimte bij display: none.

De border-box-reset

Overal border-box toepassen

De pseudo-elementen zijn erbij genomen omdat het ook boxen zijn. Preflight van Tailwind levert deze regel al mee.

Tailwind-equivalenten

Box model-utilities in Tailwind (standaard spacingschaal, 1 eenheid = 0.25rem)

Box model visualisatie

Marginlaag

Weergegeven box (rand van de border)

Ingenomen ruimte, inclusief margins

Geel is margin, de blauwe lijn is de border, groen is padding, lichtblauw is content.

borderbreedte

CSS kopiëren

Gratis beginnen · Geen creditcard nodig

Gerelateerd: Gidsen

Product

Voor wie

Functies

Bronnen

Bedrijf

Sitemap