CSS overscroll-behavior-block Property
Description
The overscroll-behavior-block property controls how the user agent should behave when a scrollable box reaches the end of its scrollable range along the block axis (the axis that follows lines of text in the current writing mode). It determines whether the default platform behaviors that normally occur at that boundary — such as visual overscroll effects, browser-initiated navigation gestures, or the continuation of scrolling into an ancestor — are allowed to run or should be suppressed. Because it targets the block axis, its effect depends on the element’s writing mode: in common horizontal writing modes this corresponds to the vertical axis, while in vertical-rl/writing-mode scenarios it corresponds to the horizontal axis.
Practically, this property is used to control scroll chaining and the user experience around "edge" interactions. When an inner scroller reaches its block-edge, the browser typically either bounces/paints an overscroll affordance, continues the scroll into the parent (scroll chaining), or triggers a platform gesture (for example, a pull-to-refresh or a navigation swipe). By configuring overscroll-behavior-block, authors can choose whether those effects should be permitted to propagate beyond the element’s block-edge or be contained locally, which is especially useful for UI components like side panels, modals, or custom scrollers where you want to prevent accidental page-level gestures.
In nested scrolling scenarios, this property is a key tool to make scrolling predictable. For example, when a nested content area is intended to consume all scroll input until it is fully exhausted (so the viewport doesn’t suddenly start moving or a browser gesture isn’t triggered), the block-axis behavior can be set to suppress propagation. Conversely, if you want an inner scroller to yield to its ancestor once it reaches its end, the property can be configured to allow that chain. It influences input from touch, trackpad, and wheel devices by affecting whether scroll input is captured or allowed to bubble up to ancestor scrolling contexts and to the browser itself.
For composition and implementation, it is commonly combined with related scrolling and input properties to achieve the desired interaction model: the shorthand overscroll-behavior can set behavior on both axes at once, and the axis-specific overscroll-behavior-x controls the inline axis counterpart. When fine-tuning gesture recognition and scroll handling you may also consider touch-action (which affects how pointer/touch gestures are interpreted) and scroll-behavior (which governs animated scrolling), using them together to create smooth, consistent, and accessible scrolling experiences.
Definition
- Initial value
- auto
- Applies to
- non-replaced block-level elements and non-replaced inline-block elements
- Inherited
- no
- Computed value
- as specified
- Animatable
- yes
- JavaScript syntax
- object.style.overscrollBehaviorBlock
Syntax
overscroll-behavior-block: auto | contain | none
Values
- autoThe default scroll overflow behavior occurs as normal.
- 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.
Example
Browser Support
The following information will show you the current browser support for the CSS overscroll-behavior-block 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
