The overscroll-behavior-block property sets what the browser does when scrolling hits the block-axis edge of a scroll container. In horizontal writing modes such as English, the block axis is vertical: top and bottom edges.
Use it on nested panels, modal bodies, and drawers so vertical overscroll does not move the page behind them. Pair it with overflow: auto or overflow-y: auto. For both axes at once, use overscroll-behavior.
Limited availability.
Not deprecated and not experimental, but MDN marks it Limited availability: Safari support starts at 16, and the newer chain value is missing in Safari and older Chromium/Firefox builds.
chain allows scroll chaining without bounce, but support is Limited availability. Prefer contain or none for production UIs today.
hidden
overflow: hidden is always at its edge
A box with no scrollable overflow is treated as already at its scroll boundary. Setting contain or none on it can still stop chaining to parents — useful for overlays.
Bottom line: Safe for auto, contain, and none in current evergreen browsers and Safari 16+. Treat chain as Limited availability. Internet Explorer has no support.
Remember
Key Takeaways
Role: control overscroll at the block-axis edge of a scroll container.
Common pick:contain for modals and drawers; none when bounce must stop too.
Logical axis: vertical in English; follows writing-mode.
Initial value:auto. Not inherited. Needs a scroll container.
One line:overscroll-behavior-block decides whether block-axis overscroll chains out of a nested scroll box.
Frequently Asked Questions
It controls what happens when scrolling reaches the block-axis edge of a scroll container. In horizontal writing modes such as English, that edge is the top or bottom.
Scroll chaining is when scrolling past the edge of one box continues scrolling a parent or the page behind it. contain and none stop that on the block axis.
Use contain to stop block-axis scroll chaining while still allowing local bounce. Use none when you also want to disable bounce and actions like pull-to-refresh.
overscroll-behavior-block follows writing mode: vertical in horizontal writing, horizontal in vertical writing. overscroll-behavior-y always targets the physical vertical axis.
No. Set it on the scroll container itself. The initial value is auto.
Chrome 77+, Firefox 73+, Safari 16+, and Edge 79+ support auto, contain, and none. The newer chain value needs Chrome 150+, Firefox 157+, or Edge 150+, and Safari does not support it yet. It is a browser CSS property, not a Node.js feature.