CSSBrowser Compatibility Overview

Browser Compatibility Overview

CSS is a single language, but it does not run in a single engine. Every browser ships its own implementation of the CSS specification, and those implementations do not all support the same features, ship them on the same timeline, or even agree on edge-case behavior for older, well-established properties. Writing CSS that works reliably for real visitors means understanding why this happens and how to plan around it.

Different Engines, Different Timelines

The three major rendering engines in use today are Blink (used by Chrome, Edge, Opera, and most other Chromium-based browsers), WebKit (used by Safari, and required for all browsers on iOS), and Gecko (used by Firefox). Each engine is developed by a different organization, with its own priorities, release cadence, and implementation quirks. A new CSS feature might land in Chrome months or years before it reaches Safari, or vice versa — and sometimes a browser implements an early, slightly different version of a feature before the specification is finalized.

This means that shipping a new CSS feature the moment it is published in a spec is risky: a meaningful slice of your visitors may be on a browser that does not understand it at all, or understands an older/different variant of it. Browser compatibility work is largely about closing that gap safely.

Strategies Covered in This Section

Strategy

What it does

Look up exactly which browsers and versions support a given feature before relying on it.

Historical browser-specific prefixes used to ship experimental CSS ahead of standardization.

Conditionally apply CSS only when the browser actually supports a given property/value.

Build a solid baseline experience first, then layer on enhancements where supported.

JavaScript-based workarounds that simulate missing CSS support in older browsers.

A modern, vendor-backed signal for when a feature has reached solid cross-browser support.

Note
Browser compatibility concerns have genuinely diminished over the years. Evergreen, auto-updating browsers (Chrome, Firefox, Edge, Safari) mean most users are running a recent version within weeks of release, so the days of testing against five-year-old browser versions by default are largely behind us. Compatibility still matters, though — for cutting-edge CSS features that have not reached universal support yet, and for enterprise, government, or other contexts that are contractually or technically required to support legacy browsers.