CSS inset-inline-start Property

Beginner
6 min read
Updated: Oct 2026
3 examples
Live preview

Definition and Usage

The inset-inline-start property sets the logical inline-start inset of a positioned element. It maps to a physical offset—left, right, top, or bottom—depending on writing-mode, direction, and text-orientation.

In default horizontal LTR text it behaves like left. In RTL it usually maps to the right. It has no effect on non-positioned elements. The initial value is auto. Pair it with inset-inline-end, or use the inset-inline shorthand.

Standard-track.

Not deprecated. Widely available since 2021. Anchor positioning values such as anchor() / anchor-size() are newer and have limited support—prefer lengths and percentages for everyday layouts.

CSS Syntax

syntax.css
inset-inline-start: auto | <length-percentage> | initial | inherit;

Same value types as top / left: auto, lengths, or percentages of the containing block’s logical width.

Property Values

ValueDescriptionTry it
autoDefault. Browser chooses the offset from other rulesTry it
<length>Fixed offset, for example 20px or 2emTry it
<percentage>Relative to the containing block’s logical widthTry it
initialResets to autoTry it
inheritTakes the parent's inset-inline-startTry it

How to Use inset-inline-start

Position the element first, then offset from the logical inline-start edge.

  1. Set position to relative, absolute, fixed, or sticky.
  2. Add inset-inline-start with a length or percentage (for example 20px).
  3. Check LTR and RTL (or your writing mode). The offset should stay on the inline-start side.
  4. Prefer this over left when the layout must flip with text direction.
PieceRequired?Role
positionYesWithout it, inset properties do nothing
inset-inline-startOptionalDefaults to auto
Writing directionContextDecides which physical side is inline-start

Live Preview

An absolutely positioned box inside a relative stage. Change the inset or writing direction.

Horizontal LTR: inline-start is usually the left. RTL flips it to the right.

Result
Inline start

inset-inline-start: 20px

CSS Examples

Each snippet keeps only what inset-inline-start needs. Use Try It Yourself for a live editor.

Example 1 — Basic Inline-Start Offset

In horizontal LTR, 20px from inline-start acts like left: 20px.

CSS
<style>
  .box { position: relative; height: 120px; }
  .item {
    position: absolute;
    inset-inline-start: 20px;
  }
</style>

<div class="box">
  <div class="item">Inline start</div>
</div>
Try It Yourself

How It Works

  1. Position the parent. position: relative creates the containing block.
  2. Position the child. position: absolute enables inset offsets.
  3. Set the logical inset. inset-inline-start: 20px offsets from the start of the inline axis.
  4. LTR mapping. In default horizontal LTR, that edge is the left side.

Example 2 — RTL Flips the Physical Side

The same logical inset moves to the right when direction is RTL.

CSS
<style>
  .box {
    position: relative;
    height: 120px;
    direction: rtl;
  }
  .item {
    position: absolute;
    inset-inline-start: 20px;
  }
</style>

<div class="box">
  <div class="item">Inline start</div>
</div>
Try It Yourself

How It Works

  1. Flip the inline axis. direction: rtl makes text flow right to left.
  2. Keep the logical inset. The same inset-inline-start still targets the start of that flow.
  3. Watch the physical side move. The box sits near the right, not the left.
  4. Why not left? A physical left offset would stay on the left in RTL. Logical insets stay on the leading edge.

Example 3 — Vertical Writing Mode

With vertical text, inline-start is no longer a left/right edge of a horizontal box.

CSS
<style>
  .box { position: relative; height: 160px; }
  .item {
    position: absolute;
    writing-mode: vertical-rl;
    inset-inline-start: 20px;
  }
</style>

<div class="box">
  <div class="item">Inline start</div>
</div>
Try It Yourself

How It Works

  1. Change the writing mode. writing-mode: vertical-rl runs lines vertically.
  2. Keep the logical inset. inset-inline-start still means “start of the inline axis.”
  3. The physical edge moves. The offset is no longer locked to the left of a horizontal box.
  4. One rule, many layouts. You do not rewrite left into top when the writing mode changes.

Edge Cases & Pitfalls

If the offset does nothing, check position first.

static

No effect without positioning

Default position: static ignores inset properties. Use relative, absolute, fixed, or sticky.

left

Not the same as left

left is always the physical left. This property follows writing direction. Mixing both can fight each other—pick one model.

end

Start and end are opposite edges

inset-inline-end is the trailing inline edge. Setting both can stretch or over-constrain the box depending on width.

%

Percentages use the containing block

Percentages resolve against the logical width of the containing block. If that size is indefinite, results can surprise you.

anchor

Anchor values are limited

anchor() and anchor-size() for insets are newer. Prefer lengths and percentages unless you specifically need CSS Anchor Positioning.

Browser Support

inset-inline-start is a browser layout property. Node.js, Deno, and Bun do not apply it.

✓ Baseline · Widely available since 2021

inset-inline-start

Chrome 87+, Firefox 63+, Safari 14.1+, Edge 87+. Internet Explorer has no support.

97% modern browsers
Google Chrome 87+
Full support
Mozilla Firefox 63+
Full support
Apple Safari 14.1+
Full support
Microsoft Edge 87+
Full support
Opera 73+
Full support
Samsung Internet 14.0+
Full support
Internet Explorer No support
None
inset-inline-start Widely supported

Bottom line: Safe for modern browsers. For Internet Explorer, fall back to physical left/right when you only need horizontal LTR layouts.

Key Takeaways

  • Role: logical offset from the inline-start edge.
  • Needs position: relative, absolute, fixed, or sticky.
  • Logical: follows writing direction. Not locked to physical left.
  • Pair: use with inset-inline-end or the inset-inline shorthand.

One line: inset-inline-start offsets a positioned box from the leading inline edge; writing mode and direction choose which physical side that is.

Frequently Asked Questions

inset-inline-start sets the offset of a positioned element's inline-start edge. Which physical side that is depends on writing-mode, direction, and text-orientation.
The initial value is auto. The browser decides placement from other positioning rules.
left always offsets from the physical left. inset-inline-start follows the logical inline-start edge, so it maps to left in LTR and usually to right in RTL.
No. Like other inset properties, it only affects positioned elements: relative, absolute, fixed, or sticky.
inset-inline sets both inset-inline-start and inset-inline-end in one declaration.
Chrome 87+, Firefox 63+, Safari 14.1+, and Edge 87+. Internet Explorer has no support. It is a browser layout property, not a Node.js feature.

Next: isolation

Create a new stacking context for blend modes and z-order.

isolation tutorial →

About the author

Mari Selvan M P
Mari Selvan M P 🔗

Developer, cloud engineer, and technical writer

  • Experience 12 years building web and cloud systems
  • Focus Full Stack Development, AWS, and Developer Education

I write practical tutorials so students and working developers can learn by doing—from databases and APIs to deployment on AWS.

8 people found this page helpful