Testing

CSS overflow-anchor: Browser Support, Values, Issues

CSS overflow-anchor works in Chrome 56+, Edge 79+, Firefox 66+, Opera 43+, and Samsung Internet 5+, while Safari does not support it. Learn the values and issues.

Author

Prince Dewani

May 1, 2026

CSS overflow-anchor is a W3C property that lets a page opt out of scroll anchoring, the browser feature that prevents content jumps when elements load above the scroll position. It works in Chrome 56+, Edge 79+, Firefox 66+, Opera 43+, and Samsung Internet 5+, while Safari on macOS and iOS, and Internet Explorer do not support it.

This guide covers what overflow-anchor is, the browsers that support it, the values it accepts, why you need it, and the known issues.

What is CSS overflow-anchor?

CSS overflow-anchor is a CSS property defined in the W3C CSS Scroll Anchoring Module Level 1. It accepts the values auto and none. The auto value lets the browser anchor scroll position to a stable element when content shifts above it; none turns scroll anchoring off for that element.

Which browsers does CSS overflow-anchor support?

CSS overflow-anchor works in every major Chromium and Gecko browser. Chrome 56, Edge 79, Firefox 66, Opera 43, and Samsung Internet 5 enable it by default, while Safari on macOS and iOS, and Internet Explorer never received support.

Loading browser compatibility data...

CSS overflow-anchor compatibility in Chrome

Chrome supports CSS overflow-anchor by default from Chrome 56 on Windows, macOS, Linux, ChromeOS, and Android. Chrome 4 to 55 did not support overflow-anchor at all. Chrome ships scroll anchoring as the default behavior, so a page only needs the property to opt out, not to opt in.

CSS overflow-anchor compatibility in Edge

Microsoft Edge supports CSS overflow-anchor by default from Edge 79 on Windows, macOS, and Linux. Edge 12 to 78 did not support overflow-anchor. Legacy EdgeHTML never received the property, so users on stale Edge builds should switch to a current Chromium-based Edge release.

CSS overflow-anchor compatibility in Firefox

Firefox supports CSS overflow-anchor by default from Firefox 66 on Windows, macOS, Linux, and Android. Firefox 2 to 65 did not support overflow-anchor. Firefox also exposes a debugging flag, layout.css.scroll-anchoring.enabled in about:config, that lets developers turn the feature off globally to test for regressions.

CSS overflow-anchor compatibility in Safari

Safari does not support CSS overflow-anchor in any stable release on macOS or iOS. Safari Tech Preview ships an experimental implementation, but the property is missing from every shipping Safari version on iPhone, iPad, and Mac. WebKit tracks the work in bug 307734 under the Scroll Anchoring component.

CSS overflow-anchor compatibility in Opera

Opera supports CSS overflow-anchor by default from Opera 43 on desktop and from Opera Mobile 80 on Android. Opera 9 to 42 did not support overflow-anchor. Opera follows the Chromium release cadence, so it inherits the same Blink scroll anchoring engine that Chrome ships.

CSS overflow-anchor compatibility in Samsung Internet

Samsung Internet supports CSS overflow-anchor by default from Samsung Internet 5 on Galaxy phones and tablets. Samsung Internet 4 did not support overflow-anchor. The browser shares the underlying Chromium engine with Chrome on Android, so its rollout closely tracks the Chrome 56 milestone.

CSS overflow-anchor compatibility in Android Browser

Chrome for Android supports CSS overflow-anchor by default from Chrome 58. The legacy Android Browser added support from version 147, while Android Browser 2.1 to 4.4.4 did not support overflow-anchor. WebView on modern Android inherits the Chromium engine, so apps that embed WebView pick up overflow-anchor automatically once the system WebView updates.

CSS overflow-anchor compatibility in Internet Explorer

Internet Explorer 5.5 through 11 do not support CSS overflow-anchor in any version. The Trident engine never received the property. Users on Windows who need overflow-anchor should switch to Microsoft Edge 79 or later, or to Chrome 56 or later.

Note

Note: CSS overflow-anchor breaks across Safari on macOS and iOS. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!

What values does CSS overflow-anchor accept?

CSS overflow-anchor accepts two main keyword values, plus the standard CSS-wide global keywords. The two real values control whether the browser keeps the user's viewport anchored to a stable element when content shifts above it.

  • auto: The default value. Lets the browser select the element as a potential scroll anchor and adjust the scroll position to keep that anchor in view when DOM mutations push other content down. Every scrollable element starts with overflow-anchor: auto.
  • none: Opts the element out of scroll anchoring. The browser will not pick the element as an anchor, and content above it can push the viewport down freely. Use none on a chat list, an animation container, or any region where the script already manages scrollTop.
  • inherit, initial, revert, revert-layer, unset: The standard CSS-wide keywords. They behave the same way they do on every other CSS property. Use them only when you need to reset or cascade the value explicitly inside a component.

The property is not inherited. Once a parent declares overflow-anchor: none, descendants cannot opt back in, because the CSS Scroll Anchoring spec disables anchoring on the scrolling container itself, not on the descendant.

Why do you need CSS overflow-anchor?

Scroll anchoring is on by default in every browser that supports it, and most pages benefit from that default. You reach for overflow-anchor only when the default fights your layout, your scripts, or your scroll listeners.

  • Reverse infinite scroll, like chat apps: Apps that prepend new messages above the current view, such as Slack, Discord, and Telegram Web, can fight scroll anchoring because the browser auto-adjusts the scroll offset that the app is already managing manually. Setting overflow-anchor: none on the message list returns control to the script.
  • Custom scroll-driven animations: Animations that read scrollTop on every frame can stutter when scroll anchoring quietly shifts the offset behind the script. Disabling overflow-anchor on the animated container keeps the offset stable so the animation reads the values it expects.
  • Sticky element jitter: Elements pinned with position: sticky can jitter when scroll anchoring updates the offset mid-frame. Disabling overflow-anchor on the scroll container removes the conflict and stops the visible flicker.
  • Layout shift debugging: When a page reports unexpected Cumulative Layout Shift, toggling overflow-anchor: none on the suspect container exposes the underlying layout shifts that scroll anchoring was hiding. The fix becomes far easier to land once the real cause is visible.
  • Third-party widgets that misbehave: Ad iframes, embedded comment widgets, and lazy-loaded media can trigger scroll anchoring unpredictably. Scoping overflow-anchor: none to a wrapping container around the widget contains the side effect without turning anchoring off for the rest of the page.
...

What are the known issues with CSS overflow-anchor?

CSS overflow-anchor is widely supported on Chromium and Gecko, but the way different engines pick anchor nodes and handle suppression triggers still has edge cases that hit production sites. Plan around these before you rely on the property to fix a layout bug.

  • No Safari support, on either macOS or iOS: Safari stable does not implement overflow-anchor. Pages that depend on overflow-anchor: none to control scroll position behave differently on Safari, and any layout that fights scroll anchoring on Chrome will not see the same fight on Safari at all. Test on Safari before assuming the property covers your iOS users.
  • Suppression triggers cancel anchoring silently: The CSS Scroll Anchoring spec lists suppression triggers, including changes to top, left, right, bottom, margin, padding, width, height, transform, and position, that turn anchoring off on the scroll container. A CSS animation that touches any of those properties on the anchor's ancestor will quietly disable anchoring, which can read as a regression in another browser.
  • No re-enabling under a disabled ancestor: Once a parent declares overflow-anchor: none, descendants cannot opt back in. A reusable component that wants scroll anchoring will lose it if any wrapper above it disables the property, so design system components should not depend on the default being active.
  • Scroll event listeners need extra handling: When scroll anchoring shifts the offset, scroll event listeners fire with the new value. Listeners that compare scrollTop frame over frame can read the adjustment as user-driven scroll input, which causes false positives in analytics and in scroll-direction logic.

In my experience, the silent failure that bites teams the most is missing the difference between a Chromium fix and a Safari gap: an overflow-anchor: none rule that fixes a Chrome layout shift will not run on Safari at all, so the same page can behave correctly on Chromium and still ship the original bug on iOS. Always test the same pattern across Chrome, Firefox, and Safari Tech Preview before claiming the fix is browser-wide.

...

Citations

All CSS overflow-anchor version numbers and platform notes in this guide come from these primary sources:

Author

Prince Dewani is a Community Contributor at TestMu AI, where he manages content strategies around software testing, QA, and test automation. He is certified in Selenium, Cypress, Playwright, Appium, Automation Testing, and KaneAI. Prince has also presented academic research at the international conference PBCON-01. He further specializes in on-page SEO, bridging marketing with core testing technologies. On LinkedIn, he is followed by 4,300+ QA engineers, developers, DevOps experts, tech leaders, and AI-focused practitioners in the global testing community.

Open in ChatGPT Icon

Open in ChatGPT

Open in Claude Icon

Open in Claude

Open in Perplexity Icon

Open in Perplexity

Open in Grok Icon

Open in Grok

Open in Gemini AI Icon

Open in Gemini AI

Copied to Clipboard!
...

3000+ Browsers. One Platform.

See exactly how your site performs everywhere.

Try it free
...

Write Tests in Plain English with KaneAI

Create, debug, and evolve tests using natural language.

Try for free

Frequently asked questions

Did you find this page helpful?

More Related Hubs

TestMu AI forEnterprise

Get access to solutions built on Enterprise
grade security, privacy, & compliance

  • Advanced access controls
  • Advanced data retention rules
  • Advanced Local Testing
  • Premium Support options
  • Early access to beta features
  • Private Slack Channel
  • Unlimited Manual Accessibility DevTools Tests