Lesson 22: Mastering the CSS Box Model
Learn how to control layout, spacing, and dimensions of elements with the powerful CSS box model.
Start LearningUnderstanding the Box Model
Every element in CSS is considered a box. The box model describes how elements are structured with content, padding, borders, and margins.
box-sizing: border-box
for more intuitive sizing
/* Box model visualization */ .margin-box { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(255, 152, 0, 0.2); border: 2px dashed #ff9800; } .border-box { position: absolute; top: 40px; left: 40px; width: 220px; height: 220px; background: rgba(33, 150, 243, 0.3); border: 2px solid #2196f3; } .padding-box { position: absolute; top: 80px; left: 80px; width: 140px; height: 140px; background: rgba(76, 175, 80, 0.3); border: 2px dashed #4caf50; } .content-box { position: absolute; top: 120px; left: 120px; width: 60px; height: 60px; background: #f44336; }
Controlling Dimensions
Use width and height properties to set element dimensions. You can also set minimum and maximum dimensions.
Dimension Examples
/* Dimension examples */ .box { width: 80%; height: 100px; background: #2196F3; color: white; display: flex; align-items: center; justify-content: center; margin: 0 auto; }
/* Min/Max dimensions */ .resizable-box { min-width: 200px; max-width: 400px; min-height: 50px; background: #4CAF50; color: white; display: flex; align-items: center; justify-content: center; padding: 10px; margin: 0 auto; }
Property | Description | Values |
---|---|---|
width |
Sets element width | px, %, em, rem, auto |
height |
Sets element height | px, %, em, rem, auto |
min-width |
Minimum element width | px, %, em, rem |
max-width |
Maximum element width | px, %, em, rem |
min-height |
Minimum element height | px, %, em, rem |
max-height |
Maximum element height | px, %, em, rem |
Borders & Outlines
Borders create visible boundaries around elements, while outlines are similar but don't affect layout.
Solid Border
Dashed Border
Dotted Border
Double Border
Groove Border
Ridge Border
Inset Border
Outset Border
/* Border shorthand */ .element { border: 3px solid #2196F3; /* width style color */ } /* Individual sides */ .element { border-top: 2px dashed #FF9800; border-right: 4px dotted #4CAF50; border-bottom: 3px double #9C27B0; border-left: 5px groove #F44336; } /* Border radius */ .rounded { border-radius: 10px; } .circle { border-radius: 50%; } /* Outline */ .element:focus { outline: 2px solid #FFEB3B; outline-offset: 2px; }
Padding & Margin
Padding creates space inside an element, while margin creates space outside an element.
Spacing Examples
/* Padding example */ .container { background: #e0e0e0; padding: 20px; } .content { background: #2196F3; color: white; padding: 20px; }
/* Margin example */ .container { background: #e0e0e0; padding: 20px; } .content { background: #4CAF50; color: white; margin: 30px; }
/* Margin and padding shorthand */ /* Four values: top right bottom left */ .element { margin: 10px 20px 30px 40px; padding: 5px 10px 15px 20px; } /* Three values: top right/left bottom */ .element { margin: 10px 20px 30px; padding: 5px 10px 15px; } /* Two values: top/bottom right/left */ .element { margin: 10px 20px; padding: 5px 10px; } /* One value: all sides */ .element { margin: 10px; padding: 5px; }
Interactive Box Styler
Customize box properties and see the results in real-time:
/* Generated CSS */ .box { width: 200px; height: 150px; padding: 10px; margin: 20px; border: 3px solid #2196f3; background-color: #2196f3; }
Practical Applications
Here are practical ways to use box properties in real-world layouts:
Card Components
Card Title
This is a card component with padding, border-radius, and box-shadow.
Image Gallery
Next Steps
Now that you've mastered the box model, continue to the next lesson to learn about styling lists in CSS.