`margin-block` CSS property
Baseline Widely available
This feature is well established and works across many devices and browser versions. It's been available across browsers since September 2021.
The margin-block CSS shorthand property defines the logical block start and end margins of an element, which maps to physical margins depending on the element's writing mode, directionality, and text orientation.
Try it
margin-block: 10px 20px; writing-mode: horizontal-tb;
margin-block: 20px 40px; writing-mode: vertical-rl;
margin-block: 5% 20%; writing-mode: horizontal-tb;
margin-block: 1rem auto; writing-mode: vertical-lr;
<section id="default-example">
<div id="container">
<div class="row">One</div>
<div class="row transition-all" id="example-element">Two</div>
<div class="row">Three</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;
color: white;
flex-shrink: 0;
}
#example-element {
border: solid 10px #ffbf00;
background-color: #2b3a55;
}
Constituent properties
This property is a shorthand for the following CSS properties:
Syntax
/* <length> values */ margin-block: 10px 20px; /* An absolute length */ margin-block: 1em 2em; /* relative to the text size */ margin-block: 5% 2%; /* relative to the nearest block container's width */ margin-block: 10px; /* sets both start and end values */ margin-block: anchor-size(inline); margin-block: calc(anchor-size(width) / 4) 1em; /* Keyword values */ margin-block: auto; /* Global values */ margin-block: inherit; margin-block: initial; margin-block: revert; margin-block: revert-layer; margin-block: unset;
This property corresponds to the margin-top and margin-bottom, or the margin-right and margin-left properties, depending on the values defined for writing-mode, direction, and text-orientation.
The margin-block property may be specified using one or two values.
- When one value is specified, it applies the same margin to both start and end.
- When two values are specified, the first margin applies to the start, the second to the end.
Values
The margin-block property takes the same values as the margin-top property.
Formal definition
| Initial value | as each of the properties of the shorthand: |
|---|---|
| Applies to | same as margin
|
| Inherited | no |
| Percentages | depends on layout model |
| Computed value | as each of the properties of the shorthand: |
| Animation type | a <a href="/en-US/docs/Web/CSS/Reference/Values/length#interpolation" title="Values of the <length> CSS data type are interpolated as real, floating-point numbers.">length</a> |
Formal syntax
margin-block =
<'margin-top'>{1,2}
Examples
Setting block start and end margins
CSS
div {
background-color: yellow;
width: 120px;
height: auto;
border: 1px solid green;
}
p {
margin: 0;
margin-block: 20px 40px;
background-color: tan;
}
.verticalExample {
writing-mode: vertical-rl;
}
HTML
<div> <p>Example text</p> </div> <div class="verticalExample"> <p>Example text</p> </div>
Result
Specifications
Browser compatibility
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | |
margin-block |
87 |
87 |
66 |
73 |
14.1 |
87 |
66 |
62 |
14.5 |
14.0 |
87 |
14.5 |
anchor-size |
132 |
132 |
147 |
117 |
26 |
132 |
147 |
87 |
26 |
29.0 |
132 |
26 |
auto |
87 |
87 |
66 |
73 |
14.1 |
87 |
66 |
62 |
14.5 |
14.0 |
87 |
14.5 |
See also
- CSS Logical Properties and Values
- The mapped physical properties:
margin-top,margin-right,margin-bottom, andmargin-left -
writing-mode,direction,text-orientation
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/margin-block