The margin-block-start property sets the outer margin on the block-start edge of an element. In a horizontal writing mode (the usual default), that maps to the physical top — like margin-top.
With a vertical writing-mode, it can map to left or right instead. It is one half of the margin-block shorthand (with margin-block-end). It is not inherited. The initial value is 0.
Baseline · Widely available.
Not deprecated. Cross-browser since about January 2020. Prefer it over margin-top when writing mode may change.
Logical tip.
Use margin-block-start for space before the element in the writing flow. Pair with margin-block-end when you need both sides separately.
Syntax
CSS Syntax
syntax.css
margin-block-start:<length> | <percentage> | auto | initial | inherit;
Same value types as margin-top, but the side is logical.
margin-block-start is a browser CSS property (logical box model). Node.js, Deno, and Bun do not apply it.
✓ Baseline · Widely available
margin-block-start
Supported in modern browsers since about January 2020. Part of CSS Logical Properties and Values.
96%Modern support
Google Chrome69+
Full support
Mozilla Firefox41+
Full support
Apple Safari12.1+
Full support
Microsoft Edge79+
Full support
Opera56+
Full support
Samsung Internet10+
Full support
Internet Explorer—
No support
margin-block-startModern browsers
Bottom line: Safe for modern sites. Fall back to margin-top only if you must support Internet Explorer. It is not a runtime API.
Remember
Key Takeaways
Role: outer margin on the block-start edge only.
Logical: follows writing mode — usually top in horizontal text.
Shorthand: part of margin-block with margin-block-end.
Default:0 — not inherited.
One line:margin-block-start adds space before the element on the block axis — writing-mode aware.
Frequently Asked Questions
It sets the outer margin on the block-start edge. In a horizontal writing mode, that is usually the top. The physical side can change with writing-mode.
The default is 0, so there is no block-start margin until you set one.
margin-top always means physical top. margin-block-start follows writing mode, so in vertical text it may map to left or right instead.
margin-block is the shorthand for margin-block-start and margin-block-end. Use the longhand when you only need the start side.
Use it for spacing before an element on the block axis—above a section or after a heading—especially when writing mode may change.
It is Baseline and widely available in modern browsers since about January 2020. It is a browser CSS property, not a Node.js feature.