The margin-top CSS property sets the margin area on the top of an element. A positive value places it farther from its neighbors, while a negative value places it closer.
margin-top
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
Try it
margin-top: 1em;
margin-top: 10%;
margin-top: 10px;
margin-top: 0;
<section id="default-example">
<div id="container">
<div class="row"></div>
<div class="row transition-all" id="example-element"></div>
<div class="row"></div>
</div>
</section>
#container {
width: 300px;
height: 200px;
display: flex;
align-content: flex-start;
flex-direction: column;
justify-content: flex-start;
}
.row {
height: 33.33%;
display: inline-block;
border: solid #ce7777 10px;
background-color: #2b3a55;
flex-shrink: 0;
}
#example-element {
border: solid 10px #ffbf00;
background-color: #2b3a55;
}
This property has no effect on non-replaced inline elements, such as <span> or <code>.
Syntax
/* <length> values */ margin-top: 10px; /* An absolute length */ margin-top: 1em; /* relative to the text size */ margin-top: 5%; /* relative to the nearest block container's width */ margin-top: anchor-size(height); margin-top: calc(anchor-size(--myAnchor self-inline, 25px) / 4); /* Keyword values */ margin-top: auto; /* Global values */ margin-top: inherit; margin-top: initial; margin-top: revert; margin-top: revert-layer; margin-top: unset;
The margin-top property is specified as the keyword auto, or a <length>, or a <percentage>. Its value can be positive, zero, or negative.
Values
<length>-
The size of the margin as a fixed value.
- For anchor-positioned elements, the
anchor-size()function resolves to a<length>value relative to the associated anchor element's width or height (see Setting element margin based on anchor size).
- For anchor-positioned elements, the
<percentage>-
The size of the margin as a percentage, relative to the inline size (width in a horizontal language, defined by
writing-mode) of the containing block. auto-
The browser selects a suitable value to use. See
margin.
Formal definition
| Initial value | 0 |
|---|---|
| Applies to | all elements, except elements with table display types other than table-caption, table and inline-table. It also applies to ::first-letter. |
| Inherited | no |
| Percentages | refer to the width of the containing block |
| Computed value | the percentage as specified or the absolute length |
| Animation type | a length |
Formal syntax
margin-top =
<length-percentage> |
auto |
<anchor-size()>
<length-percentage> =
<length> |
<percentage>
<anchor-size()> =
anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )
<anchor-name> =
<dashed-ident>
<anchor-size> =
width |
height |
block |
inline |
self-block |
self-inline
Examples
Setting positive and negative top margins
.content {
margin-top: 5%;
}
.side-box {
margin-top: 10px;
}
.logo {
margin-top: -5px;
}
#footer {
margin-top: 1em;
}
Specifications
| Specification |
|---|
| CSS Box Model Module Level 3 # margin-physical |
Browser compatibility
| Desktop | Mobile | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | |
margin-top |
1 | 12 | 1 | 3.5 | 1 | 18 | 4 | 10.1 | 1 | 1.0 | 4.4 |
anchor-size |
132 | 132 | No | 117 | No | 132 | No | 87 | No | No | 132 |
auto |
1 | 12Theauto value is not supported in quirks mode. |
1 | 3.5 | 1 | 18 | 4 | 14 | 1 | 1.0 | 37 |
See also
-
margin-right,margin-bottom, andmargin-left -
marginshorthand -
margin-block-start,margin-block-end,margin-inline-start, andmargin-inline-end -
margin-blockandmargin-inlineshorthands - CSS box model module
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/margin-top