CSS media range syntax works in Chrome 104+, Edge 104+, Firefox 63+, Safari 16.4+, Opera 91+, and Samsung Internet 20+. See operators, examples, and limits.

Prince Dewani
May 6, 2026
CSS media range syntax is a Media Queries Level 4 feature that uses comparison operators like <, <=, >, and >= to test width, height, and other range-type values. It works in Chrome 104+, Edge 104+, Firefox 63+, Safari 16.4+, Opera 91+, and Samsung Internet 20+, while Internet Explorer never added support.
This guide covers what the syntax is, the browsers that support it, the comparison operators, how to write a range query, the supported features, and known limitations.
CSS media range syntax is the range context defined in the W3C Media Queries Level 4 specification. It lets a CSS @media rule use the comparison operators <, <=, >, >=, and = on range-type features such as width, height, aspect-ratio, and resolution, replacing the older min- and max- prefix forms.
CSS media range syntax works in every modern Chromium, Gecko, and WebKit release, with Internet Explorer as the only major engine that never shipped it. Global support sits above 93% of tracked browser usage.
Chrome supports CSS media range syntax from Chrome 104 on Windows, macOS, Linux, ChromeOS, and Android. Chrome 1 to 103 did not support the new operators and skip rule blocks that use them.
Edge supports CSS media range syntax from Edge 104 on Windows, macOS, and Linux. Edge picks up the feature from the same Chromium 104 milestone as Chrome, and earlier Edge builds, including the legacy non-Chromium versions, do not support range syntax.
Firefox supports CSS media range syntax from Firefox 63 on Windows, macOS, Linux, and Android. Firefox was the first major browser to ship the syntax, well ahead of Chromium and Safari, and Firefox 1 to 62 do not support it.
Safari supports CSS media range syntax from Safari 16.4 on macOS and from Safari on iOS 16.4 on iPhone and iPad. Safari 1 to 16.3 on macOS, and Safari on iOS 3.2 to 16.3, ignore the new operators and skip the rule block.
Opera supports CSS media range syntax from Opera 91 on Windows, macOS, and Linux, with Opera Mobile picking it up from version 80 on Android. Opera 1 to 90 and Opera Mobile 12.1 and earlier do not support it.
Samsung Internet supports CSS media range syntax from Samsung Internet 20 on Android phones and tablets. Samsung Internet 4 to 19 ship the older min- and max- syntax only.
Android Browser supports CSS media range syntax from Android Browser 147 on. Older Android Browser builds, including the 4.4.4 stock browser, do not parse the new operators and need min-width and max-width fallbacks.
Internet Explorer never supported CSS media range syntax. IE 5.5 through IE 11 only understand the older min- and max- prefix style, and Microsoft has retired Internet Explorer, so move IE-bound work to Chromium-based Edge.
Note: CSS media range syntax breaks across older Safari, IE, and stale Android Browser builds. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!
Range syntax exposes five comparison operators that map to the math symbols a developer already knows. Each operator works on any range-type media feature.
Drop the new operators inside the parentheses of an @media rule. The rule body is identical to a classic media query, only the feature expression changes.
A common pattern looks like the snippet below, which combines a single-bound rule and a bounded-range rule on the same selector.
/* Single-bound rule: matches viewports 600px wide and up. */
@media (width >= 600px) {
.card {
padding: 24px;
}
}
/* Bounded-range rule: matches 400px through 1000px inclusive. */
@media (400px <= width <= 1000px) {
.card {
border-radius: 12px;
}
}If a browser does not understand the new operators, the entire @media block is skipped, so always pair production-critical layout rules with a min-width or max-width fallback for older Safari and Android Browser builds.
Range syntax only applies to features the spec marks as range type. Discrete features keep the equals-and-keyword form.
Range syntax is a clean win for modern browsers, but a small set of cross-engine quirks still bite real projects. The common pain points cover the Safari pre-16.4 gap, IE 11 fallbacks, sanitizer behavior, and Sass mixed-mode parsing.
In my experience, the trickiest production failure is the Safari 16.3 gap. A rule using (width >= 768px) renders perfectly in Chrome and Firefox, then silently drops on a tester's iPhone running iOS 16.2, and the bug looks like a CSS specificity issue. Always test the new syntax on real Safari builds before shipping.
All CSS media range syntax 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