margin-block
{{CSSRef}}
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.
{{InteractiveExample("CSS Demo: margin-block")}}
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: #ffffff;
flex-shrink: 0;
}
#example-element {
border: solid 10px #ffbf00;
background-color: #2b3a55;
}
Constituent properties
This property is a shorthand for the following CSS properties:
{{cssxref("margin-block-start")}}
{{cssxref("margin-block-end")}}
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 {{CSSxRef("margin-top")}}
and {{CSSxRef("margin-bottom")}}
, or the {{CSSxRef("margin-right")}}
and {{CSSxRef("margin-left")}}
properties, depending on the values defined for {{CSSxRef("writing-mode")}}
, {{CSSxRef("direction")}}
, and {{CSSxRef("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 {{CSSxRef("margin", "", "#values")}}
property.
Formal definition
{{cssinfo}}
Formal syntax
{{csssyntax}}
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
{{EmbedLiveSample("Setting_block_start_and_end_margins", 140, 200)}}
Specifications
{{Specifications}}
Browser compatibility
{{Compat}}
See also
- CSS Logical Properties and Values
- The mapped physical properties:
{{CSSxRef("margin-top")}}
,{{CSSxRef("margin-right")}}
,{{CSSxRef("margin-bottom")}}
, and{{CSSxRef("margin-left")}}
{{CSSxRef("writing-mode")}}
,{{CSSxRef("direction")}}
,{{CSSxRef("text-orientation")}}