Home » CSS » CSS Margins
This tutorial teaches you how to adjust space around an element using CSS.
The CSS margin properties enable you to set the spacing around an element's box border (or the edge of the element's box in case it has no defined border).
The background color does not affect an element's margin as the background color is always transparent. However, in case the parent element has the background color, then it will be visible through its margin area.
The margins can be specified for an element's individual sides, such as top, right, left, and bottom, using the CSS margin-top, margin-right, margin-left, and margin-bottom properties. Let's understand how this works using the following example:
<!DOCTYPE html>
<html>
<head>
<title>CSS Margin</title>
<style>
h1 {
margin-top: 50px;
margin-bottom: 100px;
background-color:green;
}
p {
margin-left: 75px;
margin-right: 75px;
}
</style>
</head>
<body>
<div style="border:1px solid red">
<h1>Welcome to CSS Tutorial</h1>
<p>I am a CSS Developer!</p>
</div>
</body>
The following values can be used to specify the margin properties:
Negative margins can also be specified on an element, e.g., margin: -10px;, margin: -5%;, etc.
The margin shorthand property is a property that lets you specify all margin properties within one property. The shortened code helps you avoid setting the margin of each side separately, i.e., margin-top, margin-right, margin-bottom, and margin-left. Let's understand how it works through the following example:
<!DOCTYPE html>
<html>
<head>
<title>CSS Margin</title>
<style>
h1 {
margin: 50px; /* apply to all four sides */
}
p {
margin: 25px 75px; /* vertical | horizontal */
}
div {
margin: 25px 50px 75px; /* top | horizontal | bottom */
}
hr {
margin: 25px 50px 75px 100px; /* top | right | bottom | left */
}
</style>
</head>
<body>
<div style="border:1px solid red">
<h1>Welcome to CSS Tutorial</h1>
<hr>
<p>I am a CSS Developer!</p>
</div>
</body>
This shorthand note can take one, two, three, or four whitespaces separated values.
It is advised to use the shorthand properties, as it enables you to avoid the extra typing and helps you save some time. It also helps in making your CSS code easy to follow and maintain.
A margin property's auto value tells the web browser to calculate the margin automatically. It is used to center an element horizontally within a larger container.
Let's consider the following example to understand how it works:
<!DOCTYPE html>
<html>
<head>
<title>CSS Margin</title>
<style>
div {
width: 300px;
background: gray;
margin: 0 auto;
}
</style>
</head>
<body>
<div style="border:1px solid red">
<h1>Welcome to CSS Tutorial</h1>
<p>I am a CSS Developer!</p>
</div>
</body>
</html>
The above style rules let the <div> element take up 300 pixels of all the horizontal space available, and the remaining space will be equally divided between left and right margins.