CSS overscroll-behavior Property
Description
The overscroll-behavior property gives authors control over what happens when a user scrolls past the start or end of a scroll container. Instead of allowing the browser’s default “overscroll” effects — such as rubber-banding, glow indicators or scroll chaining into parent containers and the document root — this property lets you constrain those outcomes so an inner scroller can stop cleanly at its bounds without kicking the scroll gesture up to an ancestor or triggering system-level gestures (like pull-to-refresh or navigation swipes).
Because it targets the interaction at the moment a scroll reaches a boundary, overscroll-behavior is primarily useful for composing complex scrolling UI: modal dialogs with their own scrollable content, horizontally scrolling carousels embedded in vertically scrolling pages, or fixed-size panels that should absorb touch input without letting the page behind move. Applied to the page root, it can also be used to prevent the document from responding to overscroll gestures that would otherwise trigger a browser UI action. It only affects the outcome of user-initiated scrolling at container boundaries and does not change whether an element is itself scrollable; for that, authors pair it with properties that control scrollable axes such as overflow.
When integrating overscroll-behavior into a UI, consider how it interacts with other input- and scroll-related properties. It complements gesture control provided by touch-action (which governs whether the browser allows panning/zooming gestures on an element) and works alongside scroll configuration like scroll-behavior (which affects programmatic or smooth scroll animation). From an accessibility and UX perspective, constraining overscroll can reduce accidental navigation and provide a more predictable containment of gestures, but be careful not to remove expected system affordances (for example, disabling a platform’s pull-to-refresh on content where users expect it).
Definition
- Initial value
- auto
- Applies to
- non-replaced block-level elements and non-replaced inline-block elements
- Inherited
- no
- Computed value
- See individual properties
- Animatable
- See individual properties
- JavaScript syntax
- object.style.overscrollBehavior
Syntax
overscroll-behavior: [ contain | none | auto ]{1,2}
Values
- containDefault scroll overflow behavior is observed inside the element this value is set on (e.g. "bounce" effects or refreshes), but no scroll chaining occurs to neighboring scrolling areas, e.g. underlying elements will not scroll.
- noneNo scroll chaining occurs to neighboring scrolling areas, and default scroll overflow behavior is prevented.
- autoThe default scroll overflow behavior occurs as normal.
Example
Browser Support
The following information will show you the current browser support for the CSS overscroll-behavior property. Hover over a browser icon to see the version that first introduced support for this CSS property.
This property is supported by all modern browsers.
Desktop
Tablets & Mobile
Last updated by CSSPortal on: 1st January 2026
