HTML5ANDCSS3 logoHTML5ANDCSS3Tools and Tutorials
  • Insights
  • Verify Certificate
HTML5ANDCSS3 logoHTML5ANDCSS3Tools and Tutorials
HTML5ANDCSS3 logoHTML5ANDCSS3Tools and Tutorials

HTML5andCSS3.org helps developers learn modern frontend skills with practical tutorials, production-ready snippets, and fast web tools built for everyday coding.

Quick Links

  • About Us
  • Contact Us
  • Privacy Policy
  • Copyright
  • Disclaimer

Top Tools

  • Try It Editor
  • JSON Formatter
  • CSS Minifier
  • HTML Minifier
  • Base64 Encoder / Decoder

Contact

  • business@html5andcss3.org
Newsletter

Learn at your own pace, practice with useful tools, and build websites you're proud of.

© 2011-2026 html5andcss3.org. All rights reserved.

How to Use

CSS Tutorial

CSS Introduction

What is CSSCSS SyntaxHow to Add CSSCSS Comments

CSS Foundations

Cascade & InheritanceCSS SpecificityCSS UnitsBox SizingCSS VariablesCSS Math Functions

CSS Selectors

CSS Element SelectorCSS Class SelectorCSS ID SelectorCSS Universal SelectorCSS Group SelectorCSS CombinatorsCSS Attribute SelectorsCSS Pseudo ClassesCSS Pseudo Elements

CSS Colors and Backgrounds

CSS ColorsCSS HEX ColorsCSS RGB ColorsModern ColorsCSS Background ColorCSS Background ImageLayered Backgrounds

CSS Text & Fonts

CSS Text ColorCSS Text AlignmentCSS Text DecorationCSS Font FamilyCSS Font SizeWeb Fonts & TypographyText Wrapping

CSS Box Model

CSS MarginCSS PaddingCSS BorderCSS OutlineCSS Width and Height

CSS Layout

Normal FlowCSS DisplayCSS PositionAnchor PositioningCSS FloatCSS OverflowCSS Z-indexIntrinsic SizingAspect Ratio & Object FitMulti-column Layout

CSS Flexbox

Flex ContainerFlex DirectionJustify ContentAlign ItemsFlex WrapFlex Item Sizing

CSS Grid

CSS Grid ContainerCSS Grid ColumnsCSS Grid RowsCSS Grid GapCSS Grid Layout ExampleGrid PlacementGrid AreasCSS Subgrid

CSS Lists, Tables & Forms

CSS ListsCSS TablesCSS Form StylingCSS Input Fields

CSS Effects

CSS ShadowsCSS GradientsCSS FiltersCSS OpacityClipping & MaskingBlending & BackdropScroll Snap

CSS Animations & Transitions

CSS TransformCSS 2D TransformCSS 3D TransformCSS TransitionsEntry & Exit TransitionsCSS AnimationsScroll AnimationsView TransitionsMotion Paths

CSS Responsive Design

CSS Media QueriesResponsive LayoutMobile First DesignContainer QueriesPreference Media QueriesFeature Queries

Modern CSS Authoring

Cascade LayersNesting & ScopeLogical PropertiesGenerated Content

CSS Accessibility

Accessible CSSCSS ThemingModern Form StylingCSS User Interface

CSS Output & Performance

Print StylesCSS PerformanceCSS ArchitectureDebugging CSS

CSS Reference

CSS At-rulesCSS FunctionsCSS Tutorial PDF

CSS Projects

Responsive CSS Project
  1. Home
  2. /
  3. Tutorials
  4. /
  5. CSS Tutorial
  6. /
  7. Box Sizing

CSS Foundations

Box Sizing

Control how padding and borders participate in declared sizes and prevent accidental overflow. You will see how content-box and border-box calculate dimensions, why controls overflow, and how minimum sizes affect Flexbox and Grid children.

The box-sizing property decides whether a declared width or height describes only the content box or the complete box through its border. That choice changes every padding and border calculation.

Unexpected overflow often comes from two independent constraints: the chosen box-sizing model and the element’s minimum size. A border-box reset solves the first by keeping padding and borders inside the declared dimension. It does not automatically solve long content or the content-based minimum applied to flex and grid items. This topic also connects with CSS Width and Height and Intrinsic Sizing.

Content box and border box

With the default content-box, a declared width covers only the content. Padding and borders are added outside it. With border-box, the declared width includes content, padding, and border.

Example

css

html { box-sizing: border-box; }

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

This inheritance-based reset gives components predictable dimensions while still allowing a component to opt into another sizing model.

Minimum and maximum constraints

Example

css

.article {
  width: min(100% - 2rem, 70ch);
  margin-inline: auto;
}

.sidebar {
  min-width: 14rem;
  max-width: 22rem;
}

Box-sizing Values

ValueDeclared size includesExample
content-boxContent onlybox-sizing: content-box
border-boxContent, padding, and borderbox-sizing: border-box

Complete Example

Run the complete document below in the Try It editor. Resize the preview or interact with the controls where the example calls for it.

Complete runnable example

html

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Box Sizing example</title>
  <style>
    * { box-sizing: border-box; }
    body {
      margin: 0;
      padding: 2rem;
      font-family: system-ui, sans-serif;
      line-height: 1.5;
    }
    main { max-width: 70rem; margin-inline: auto; }
    article, section, aside, form, .card, .panel {
      padding: 1rem;
      border: 1px solid #cbd5e1;
      border-radius: 0.6rem;
    }

html { box-sizing: border-box; }

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

.article {
  width: min(100% - 2rem, 70ch);
  margin-inline: auto;
}

.sidebar {
  min-width: 14rem;
  max-width: 22rem;
}
  </style>
</head>
<body>
  <main class="article"><h1>Border-box sizing</h1><aside class="sidebar">This box keeps padding and borders inside its declared width.</aside></main>
</body>
</html>

Browser Support

Feature
Chrome
Edge
Firefox
Safari
box-sizing1012295.1

Versions show the first stable desktop release with unprefixed support. Data source: MDN Browser Compatibility Data 8.0.8. A partial-support note is included where it changes how the example behaves.

Notes

  • A flex or grid child may refuse to shrink because its automatic minimum size is content-based. min-width: 0 or min-inline-size: 0 is often the correct fix.
  • Test the example with real content, keyboard input, browser zoom, and the narrowest layout your project supports.
  • Use a fallback when the support table shows that one of your required browsers predates the feature.

Conclusion

A border-box reset and explicit minimum constraints make component sizing predictable.

Use the inheritance-based border-box reset as a foundation, then inspect min-width, min-inline-size, and intrinsic content when a child still refuses to shrink. This keeps the fix attached to the actual sizing rule instead of hiding overflow on an unrelated ancestor.

PreviousCSS UnitsNextCSS Variables