rem stands for "root em" — every rem value is multiplied by the root element's font-size to produce a pixel value. Designing in rem instead of px means user zoom and accessibility settings scale your layout proportionally, instead of leaving large pixel-fixed components stranded next to scaled body text.
The conversion is plain division: rem = pixels / base. Slide the base font-size between 10 and 24 px and the page recomputes both the headline value and a quick reference table of common pixel sizes. The "10 px base" trick (set { font-size: 62.5% }) gives the cleanest mental math — every 10 px becomes exactly 1 rem.
em is relative to the parent element's font-size; rem is always relative to the root () font-size. rem keeps spacing predictable across nested components, which is why it is preferred for layout sizes.
Browsers ship with a 16 px default font-size on . Building a design around that base means user font-size preferences (zoom, accessibility settings) scale your whole layout proportionally — a key accessibility win over fixed-pixel layouts.
Use rem for font sizes, line-heights, and layout spacing where user-zoom respect matters. Keep px for borders, fine details, and 1-pixel hairlines where exact rendering matters more than scaling. Mix the two on purpose, not by accident.
Yes. Browsers handle fractional rem values fine and rounding tiny pixel differences is rarely visible. If you prefer round numbers, set a base that divides cleanly (10 px gives you a tidy 1 rem = 10 px).
Explore the full suite of CSS tools and 290+ other free utilities at Chunky Munster.