The margin CSS property sets the margin area on all four sides of an element. It is a shorthand for margin-top, margin-right, margin-bottom, and margin-left.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
The top and bottom margins have no effect on non-replaced inline elements, such as <span> or <code>.
Note: Margins create extra space around an element. In contrast, padding creates extra space within an element.
Syntax
/* Apply to all four sides */ margin: 1em; margin: -3px; /* vertical | horizontal */ margin: 5% auto; /* top | horizontal | bottom */ margin: 1em auto 2em; /* top | right | bottom | left */ margin: 2px 1em 0 auto; /* Global values */ margin: inherit; margin: initial; margin: unset;
The margin property may be specified using one, two, three, or four values. Each value is a <length>, a <percentage>, or the keyword auto. Negative values draw the element closer to its neighbors than it would be by default.
- When one value is specified, it applies the same margin to all four sides.
- When two values are specified, the first margin applies to the top and bottom, the second to the left and right.
- When three values are specified, the first margin applies to the top, the second to the right and left, the third to the bottom.
- When four values are specified, the margins apply to the top, right, bottom, and left in that order (clockwise).
Values
<length>- The size of the margin as a fixed value.
<percentage>- The size of the margin as a percentage, relative to the width of the containing block.
auto- The browser selects a suitable margin to use. For example, in certain cases this value can be used to center an element.
Formal syntax
[ <length> | <percentage> | auto ]{1,4}
Examples
Simple example
HTML
<div class="center">This element is centered.</div>
<div class="outside">This element is positioned outside of its container.</div>
CSS
.center {
margin: auto;
background: lime;
width: 66%;
}
.outside {
margin: 3rem 0 0 -3rem;
background: cyan;
width: 66%;
}
More examples
margin: 5%; /* All sides: 5% margin */
margin: 10px; /* All sides: 10px margin */
margin: 1.6em 20px; /* top and bottom: 1.6em margin */
/* left and right: 20px margin */
margin: 10px 3% -1em; /* top: 10px margin */
/* left and right: 3% margin */
/* bottom: -1em margin */
margin: 10px 3px 30px 5px; /* top: 10px margin */
/* right: 3px margin */
/* bottom: 30px margin */
/* left: 5px margin */
margin: 2em auto; /* top and bottom: 2em margin */
/* Box is horizontally centered */
margin: auto; /* top and bottom: 0 margin */
/* Box is horizontally centered */
Notes
Horizontal centering
To center something horizontally in modern browsers, you can use display: flex; justify-content: center; .
However, in older browsers like IE8-9 that do not support Flexible Box Layout, these are not available. In order to center an element inside its parent, use margin: 0 auto;.
Margin collapsing
Elements' top and bottom margins are sometimes collapsed into a single margin that is equal to the larger of the two margins. See Mastering margin collapsing for more information.
Specifications
| Specification | Status | Comment |
|---|---|---|
| CSS Basic Box ModelThe definition of 'margin' in that specification. | Working Draft | No significant change. |
| CSS Level 2 (Revision 1)The definition of 'margin' in that specification. | Recommendation | Removes the effect of top and bottom margins on inline elements. |
| CSS Level 1The definition of 'margin' in that specification. | Recommendation | Initial definition. |
| Initial value |
as each of the properties of the shorthand:
|
| Applies to | all elements, except elements with table display types other than table-caption, table and inline-table. It also applies to ::first-letter and ::first-line.
|
| Inherited | no |
| Percentages | refer to the width of the containing block |
| Computed value |
as each of the properties of the shorthand:
|
| Animation type | a length |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
margin
|
Chrome
Full support 1 |
Edge
Full support 12 |
Firefox
Full support 1 |
IE
Full support 3 |
Opera
Full support 3.5 |
Safari
Full support 1 |
WebView Android
Full support 1 |
Chrome Android
Full support 18 |
Firefox Android
Full support 4 |
Opera Android
Full support 10.1 |
Safari iOS
Full support 1 |
Samsung Internet Android
Full support 1.0 |
auto
|
Chrome
Full support 1 |
Edge Full support 12 Full support 12 Notes' The |
Firefox
Full support 1 |
IE Full support 6 Full support 6 Notes' The |
Opera
Full support 3.5 |
Safari
Full support 1 |
WebView Android
Full support 37 |
Chrome Android
Full support 18 |
Firefox Android
Full support 4 |
Opera Android
Full support 14 |
Safari iOS
Full support 1 |
Samsung Internet Android
Full support 1.0 |
Legend
- Full support
- Full support
- See implementation notes.'
- See implementation notes.
See also
- Introduction to the CSS basic box model
- Margin collapsing
margin-top,margin-right,margin-bottom, andmargin-left- The mapped logical properties:
margin-block-start,margin-block-end,margin-inline-start, andmargin-inline-endand the shorthandsmargin-blockandmargin-inline
margin by Mozilla Contributors is licensed under CC-BY-SA 2.5.