`overscroll-behavior-inline` CSS property
Baseline Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
The overscroll-behavior-inline CSS property sets the browser's behavior when the inline direction boundary of a scrolling area is reached.
See overscroll-behavior for a full explanation.
Syntax
/* Keyword values */ overscroll-behavior-inline: auto; /* default */ overscroll-behavior-inline: contain; overscroll-behavior-inline: none; /* Global values */ overscroll-behavior-inline: inherit; overscroll-behavior-inline: initial; overscroll-behavior-inline: revert; overscroll-behavior-inline: revert-layer; overscroll-behavior-inline: unset;
Values
This property is specified as one of the following keyword values:
-
auto - The default scroll overflow behavior occurs as normal.
-
contain - Default scroll overflow behavior (e.g., "bounce" effects) is observed inside the element where this value is set. However, no scroll chaining occurs on neighboring scrolling areas; the underlying elements will not scroll. The
containvalue disables native browser navigation, including the vertical pull-to-refresh gesture and horizontal swipe navigation. -
none - No scroll chaining occurs to neighboring scrolling areas, and default scroll overflow behavior is prevented.
Formal definition
| Initial value | auto |
|---|---|
| Applies to | non-replaced block-level elements and non-replaced inline-block elements |
| Inherited | no |
| Computed value | as specified |
| Animation type | discrete |
Formal syntax
overscroll-behavior-inline =
contain |
none |
auto
Examples
Preventing inline overscrolling
In this demo we have two block-level boxes, one inside the other. The outer box has a large width set on it so the page will scroll horizontally. The inner box has a small width (and height) set on it so it sits comfortably inside the viewport, but its content is given a large width so it will also scroll horizontally.
By default, when the inner box is scrolled and a scroll boundary is reached, the whole page will begin to scroll, which is probably not what we want. To avoid this happening in the inline direction, we've set overscroll-behavior-inline: contain on the inner box.
HTML
<main>
<div>
<div>
<p>
<code>overscroll-behavior-inline</code> has been used to make it so that
when the scroll boundaries of the yellow inner box are reached, the
whole page does not begin to scroll.
</p>
</div>
</div>
</main>
CSS
main {
height: 400px;
width: 3000px;
background-color: white;
background-image: repeating-linear-gradient(
to right,
transparent 0px,
transparent 19px,
rgb(0 0 0 / 50%) 20px
);
}
main > div {
height: 300px;
width: 400px;
overflow: auto;
position: relative;
top: 50px;
left: 50px;
overscroll-behavior-inline: contain;
}
div > div {
height: 100%;
width: 1500px;
background-color: yellow;
background-image: repeating-linear-gradient(
to right,
transparent 0px,
transparent 19px,
rgb(0 0 0 / 50%) 20px
);
}
p {
padding: 10px;
background-color: rgb(255 0 0 / 50%);
margin: 0;
width: 360px;
position: relative;
top: 10px;
left: 10px;
}
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 | |
overscroll-behavior-inline |
144
77–144The property has no effect on scroll containers that have no scrollable overflow. |
144
79–144The property has no effect on scroll containers that have no scrollable overflow. |
150
73–150The property has no effect on scroll containers that have no scrollable overflow. |
128
64–128The property has no effect on scroll containers that have no scrollable overflow. |
16The property has no effect on scroll containers that have no scrollable overflow. |
144
77–144The property has no effect on scroll containers that have no scrollable overflow. |
150
79–150The property has no effect on scroll containers that have no scrollable overflow. |
95
55–95The property has no effect on scroll containers that have no scrollable overflow. |
16The property has no effect on scroll containers that have no scrollable overflow. |
12.0The property has no effect on scroll containers that have no scrollable overflow. |
144
77–144The property has no effect on scroll containers that have no scrollable overflow. |
16The property has no effect on scroll containers that have no scrollable overflow. |
auto |
77 |
79 |
73 |
64 |
16 |
77 |
79 |
55 |
16 |
12.0 |
77 |
16 |
chain |
150 |
150 |
No |
134 |
No |
150 |
No |
101 |
No |
No |
150 |
No |
contain |
77 |
79 |
73 |
64 |
16 |
77 |
79 |
55 |
16 |
12.0 |
77 |
16 |
none |
77 |
79 |
73 |
64 |
16 |
77 |
79 |
55 |
16 |
12.0 |
77 |
16 |
See also
overscroll-behavioroverscroll-behavior-xoverscroll-behavior-yoverscroll-behavior-block- CSS overscroll behavior module
© 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/overscroll-behavior-inline