CSS Box Model
The CSS Box Model describes how the dimensions and spacing of elements are calculated and rendered on the web page. It consists of four main components: content, padding, border, and margin. Understanding the box model is essential for controlling layout and design in CSS.
1. Understanding the Box Model
Every HTML element is represented as a rectangular box, and the CSS Box Model defines how the size and spacing of these boxes are calculated.
The Box Model Components:
- Content: The actual content of the box (text, images, etc.).
- Padding: Space between the content and the border.
- Border: Surrounds the padding (if any) and content.
- Margin: Space outside the border, separating the element from other elements.
2. Content
The content area is where the text and images are displayed. The width and height of this area are controlled by the width
and height
properties in CSS.
Code Example:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Content Area Example</title>
<style>
.content-box {
width: 200px;
height: 100px;
background-color: lightgray;
}
</style>
</head>
<body>
<div class="content-box">
This is the content area.
</div>
</body>
</html>
3. Padding
Padding is the space between the content and the border. It is used to create space inside the element, affecting the area where the content is displayed.
Code Example:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Padding Example</title>
<style>
.padding-box {
width: 200px;
padding: 20px;
border: 2px solid black;
background-color: lightblue;
}
</style>
</head>
<body>
<div class="padding-box">
Content with padding.
</div>
</body>
</html>
4. Border
The border surrounds the padding (if any) and content. It can be styled using different border properties like border-width
, border-style
, and border-color
.
Code Example:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Border Example</title>
<style>
.border-box {
width: 200px;
padding: 10px;
border: 5px solid red;
background-color: lightgreen;
}
</style>
</head>
<body>
<div class="border-box">
Content with border.
</div>
</body>
</html>
5. Margin
Margin is the space outside the border, separating the element from other elements. It creates space around elements and can be used to position elements within their containers.
Code Example:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Margin Example</title>
<style>
.margin-box {
width: 200px;
padding: 10px;
border: 2px solid blue;
margin: 20px;
background-color: lightcoral;
}
</style>
</head>
<body>
<div class="margin-box">
Content with margin.
</div>
</body>
</html>
6. Box Sizing
The box-sizing
property allows you to include the padding and border in the element’s total width and height. The default value is content-box
, which does not include padding and border in the width and height calculations. Changing it to border-box
makes sure that padding and border are included in the width and height.
Code Example:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Box Sizing Example</title>
<style>
.box-sizing-box {
width: 200px;
padding: 20px;
border: 10px solid black;
box-sizing: border-box;
background-color: lightyellow;
}
</style>
</head>
<body>
<div class="box-sizing-box">
Content with box-sizing: border-box.
</div>
</body>
</html>
7. Box Model Properties
Here’s a summary of the properties used in the CSS Box Model:
width
andheight
: Control the size of the content area.padding
: Adds space between the content and the border.border
: Defines the border around the padding and content.margin
: Creates space outside the border, separating elements.
Full Example:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Complete Box Model Example</title>
<style>
.box-model {
width: 300px;
padding: 15px;
border: 5px solid gray;
margin: 30px;
box-sizing: border-box;
background-color: lightpink;
}
</style>
</head>
<body>
<div class="box-model">
Complete box model example.
</div>
</body>
</html>