CSS Anchor Positioning supports Chrome 125+, Edge 125+, Firefox 147+, Opera 111+, Samsung Internet 27+, and Safari 26. See full browser support details.

Prince Dewani
May 1, 2026
CSS Anchor Positioning is a W3C CSS module that lets a target element size and position itself relative to an anchor in pure CSS, with no JavaScript glue. It works in Chrome 125+, Edge 125+, Opera 111+, Samsung Internet 27+, Firefox 147+, and Safari 26 on Apple platforms, while Internet Explorer never added support.
This guide covers what CSS Anchor Positioning is, the browsers that support it, the key features, use cases, support checks, and known issues.
CSS Anchor Positioning is a W3C CSSWG module that lets one element act as an anchor and another element size and position itself against that anchor in pure CSS. The entry points are the anchor-name and position-anchor properties plus the anchor() and anchor-size() functions.
CSS Anchor Positioning now ships by default in every major engine. Coverage hardened across late Chromium and Firefox builds, plus Safari 26 on Apple devices.
Chrome supports CSS Anchor Positioning from Chrome 125 on Windows, macOS, ChromeOS, Linux, and Android. Chrome 117 to 124 had the API disabled by default behind the chrome://flags/#enable-experimental-web-platform-features flag, and Chrome 4 to 116 did not support it. Chrome 129 renamed inset-area to position-area, so always target the spec name in production.
Microsoft Edge supports CSS Anchor Positioning from Edge 125 on Windows, macOS, and ChromeOS through the same Chromium pipeline as Chrome. Edge 117 to 124 carried it behind the edge://flags/#enable-experimental-web-platform-features flag, and Edge 12 to 116 did not support it.
Firefox supports CSS Anchor Positioning from Firefox 147 on Windows, macOS, Linux, and Android by default. Firefox 145 to 146 had it disabled by default behind the layout.css.anchor-positioning.enabled preference, and Firefox 2 to 144 did not support it.
Safari supports CSS Anchor Positioning from Safari 26 on macOS Tahoe 26, iOS 26, iPadOS 26, and visionOS 26. Safari 3.1 to 18.7 did not support it on any Apple platform. Chrome and Edge on iOS and iPadOS rely on the WebKit engine, so they inherit Safari's status.
Opera supports CSS Anchor Positioning from Opera 111 on Windows, macOS, and Linux through the Chromium 125 base. Opera 103 to 110 carried it behind the opera://flags/#enable-experimental-web-platform-features flag, and Opera 9 to 102 did not support it.
Samsung Internet supports CSS Anchor Positioning from Samsung Internet 27 on Galaxy phones and tablets. Samsung Internet 4.0 to 26 did not support the anchor-name, position-anchor, or anchor() surface at all.
The legacy stock Android Browser, frozen at version 4.4 before Chrome for Android took over, does not support CSS Anchor Positioning. On modern Android phones, use Chrome for Android 147 or later, Samsung Internet 27, or another modern Chromium-based browser instead.
Internet Explorer never added CSS Anchor Positioning. IE 5.5 through IE 11 cannot parse anchor-name, position-anchor, or position-area. Microsoft has retired Internet Explorer, so use Edge, Chrome, or Firefox for any anchor-positioning work.
Note: CSS Anchor Positioning behaves differently across Chromium, Firefox, and Safari builds. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!
The module ships a small property and function set that replaces several JavaScript layout patterns. Each piece composes with regular CSS positioning, so layouts stay declarative.
Anchor Positioning collapses the JavaScript that used to drive overlays, menus, and field labels. The same CSS handles desktop and mobile placement without extra observers.
CSS exposes a one-line @supports gate, and JavaScript exposes feature detection through CSS.supports(). Both run inside the browser with no build step.
function checkAnchorPositioning() {
const parsesAnchorName = CSS.supports("anchor-name: --tip");
const parsesPositionAnchor = CSS.supports("position-anchor: --tip");
const parsesAnchorFunc = CSS.supports("top: anchor(bottom)");
if (parsesAnchorName && parsesPositionAnchor && parsesAnchorFunc) {
console.log("CSS Anchor Positioning is ready in this browser.");
return true;
}
console.log("CSS Anchor Positioning is not fully available. Load the polyfill or fall back to absolute positioning.");
return false;
}
checkAnchorPositioning();If only anchor-name returns true but anchor() returns false, the browser is on a transitional Chromium build with the property parser ahead of the function. Use the polyfill on those builds.
CSS Anchor Positioning is the youngest module in the layout family, and the rough edges show up around older browser builds, polyfill gaps, and a couple of evolving syntax decisions.
In my experience, the trickiest production failure is shipping a tooltip that flips correctly in Chrome 125 yet collapses to viewport (0, 0) in a slightly older Edge build because position-try-options was renamed to position-try-fallbacks. Detect both names with CSS.supports() before you trust either.
All CSS Anchor Positioning version numbers and platform notes in this guide come from these primary sources:
Did you find this page helpful?
More Related Hubs
TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance