The inset-block-start property sets the logical block-start offset of a positioned element. In the default horizontal writing mode, that usually means the same edge as top.
Not deprecated and not experimental. Logical inset properties have been widely available across browsers since April 2021. Internet Explorer does not support them.
Syntax
CSS Syntax
syntax.css
inset-block-start:<length> | <percentage> | auto | initial | inherit;
The initial value is auto. The property is not inherited. Percentages refer to the containing block’s size on the block axis.
Switch writing mode.vertical-rl rotates the block axis.
Keep the logical property.inset-block-start still means “from the start of the block axis.”
Physical edge changes. The offset no longer sits on the top like top would.
Why logical helps. One rule stays correct across writing modes.
Edge Cases & Pitfalls
If the offset looks wrong, check these first.
position
Static elements ignore inset-block-start
Set position to relative, absolute, fixed, or sticky first.
top
Not always the same as top
top is physical. Prefer inset-block-start when the start edge must follow writing mode.
shorthand
inset-block can overwrite it
A later inset-block declaration sets both start and end. Put the longhand after the shorthand if you need only the start side.
mode
Writing mode changes the physical edge
Do not assume “always top.” Check writing-mode in vertical layouts.
auto
auto means no forced start offset
With auto, placement comes from other rules (such as a set end offset plus height, or static position).
Compatibility
Browser Support
inset-block-start is a browser CSS property for logical positioned offsets. Node.js, Deno, and Bun do not apply it.
✓ Baseline · Widely available
inset-block-start
Chrome 87+, Edge 87+, Firefox 63+, Safari 14.1+. Internet Explorer has no support — fall back to top (or the matching physical side in vertical modes).
96%Modern browser support
Google Chrome87+
Full support
Mozilla Firefox63+
Full support
Apple Safari14.1+
Full support
Microsoft Edge87+
Full support
Opera73+
Full support
Samsung Internet14+
Full support
Internet ExplorerNo support
Not supported
inset-block-startWidely supported
Bottom line: Safe for modern sites. For Internet Explorer, use top (or the physical edge that matches your writing mode). It is not a runtime API.
Remember
Key Takeaways
Role: offset a positioned box from the logical block-start edge.
Needs position: relative, absolute, fixed, or sticky.
Often like top: in horizontal-tb, then adapts with writing mode.
Initial value:auto. Not inherited.
One line: positioned box + inset-block-start: 20px; = logical start offset that follows writing mode.
Frequently Asked Questions
It sets the logical block-start offset of a positioned element. In horizontal writing mode that usually matches top.
The initial value is auto. The browser then places the block-start edge from other positioning rules.
top always targets the physical top edge. inset-block-start follows writing-mode, so in vertical-rl it can map to a side edge instead.
No. It only affects elements with position set to relative, absolute, fixed, or sticky.
inset-block is the shorthand that sets both inset-block-start and inset-block-end. Use inset-block-start when you only need the start side.
It is Baseline Widely available. Chrome 87+, Edge 87+, Firefox 63+, and Safari 14.1+ support it. Internet Explorer does not. It is a browser CSS property, not a Node.js feature.