This element has a margin of 40px.
The CSS margin properties are used to create space around elements, outside of any defined borders.
With CSS, you have full control over the margins. There are properties for setting the margin for each side of an element (top, right, bottom, and left).
CSS has properties for specifying the margin for each side of an element:
margin-topmargin-rightmargin-bottommargin-leftAll the margin properties can have the following values:
Tip: Negative values are allowed.
Set different margins for all four sides of a <p> element:
p {
margin-top: 100px;
margin-bottom: 100px;
margin-right: 150px;
margin-left: 80px;
}To shorten the code, it is possible to specify all the margin properties in one property.
The margin property is a shorthand property for the following individual margin properties:
margin-topmargin-rightmargin-bottommargin-leftSo, here is how it works:
If the margin property has four values:
Use the margin shorthand property with four values:
p {
margin: 25px 50px 75px 100px;
}If the margin property has three values:
Use the margin shorthand property with three values:
p {
margin: 25px 50px 75px;
}If the margin property has two values:
Use the margin shorthand property with two values:
p {
margin: 25px 50px;
}If the margin property has one value:
Use the margin shorthand property with one value:
p {
margin: 25px;
}You can set the margin property to auto to horizontally center the element within its container.
The element will then take up the specified width, and the remaining space will be split equally between the left and right margins.
Use margin: auto:
div {
width: 300px;
margin: auto;
border: 1px solid red;
}This example lets the left margin of the <p class="ex1"> element be inherited from the parent element (<div>):
Use of the inherit value:
div {
border: 1px solid red;
margin-left: 100px;
}
p.ex1 {
margin-left: inherit;
}Top and bottom margins of elements are sometimes collapsed into a single margin that is equal to the largest of the two margins.
This does not happen on left and right margins! Only top and bottom margins!
Look at the following example:
Demonstration of margin collapse:
h1 {
margin: 0 0 50px 0;
}
h2 {
margin: 20px 0 0 0;
}In the example above, the <h1> element has a bottom margin of 50px and the <h2> element has a top margin set to 20px.
Common sense would seem to suggest that the vertical margin between the <h1> and the <h2> would be a total of 70px (50px + 20px). But due to margin collapse, the actual margin ends up being 50px.
| Property | Description |
|---|---|
| margin | A shorthand property for setting the margin properties in one declaration |
| margin-bottom | Sets the bottom margin of an element |
| margin-left | Sets the left margin of an element |
| margin-right | Sets the right margin of an element |
| margin-top | Sets the top margin of an element |