CSS Units Explained: px, pt, em and rem

Why does 12 pt text in a print layout match 16 px text on a web page? Both describe the same size, just in different units. CSS ties its units together with one fixed rule: an inch equals 96 pixels and 72 points. Once you know that rule and how em and rem scale, every font size becomes simple arithmetic.

At a Glance

Core rule 1 in = 96 px = 72 pt = 6 pc
Point to pixel 1 pt = 1.333 px, and 12 pt = 16 px
em Relative to the parent’s font size (for font-size)
rem Relative to the root (html) font size
Common default 16 px, so 1.5 rem = 24 px

CSS Unit Conversion Chart at a 16 px Base

The chart below lists common text sizes in four units at once. It assumes a 16 px root font size, the common browser default. Points convert at 0.75 pt per pixel, and rem divides the pixel size by 16.

Common text sizes in px, pt, rem and percent
Pixels (px) Points (pt) rem (16 px root) Percent of root
12 px 9 pt 0.75 rem 75%
14 px 10.5 pt 0.875 rem 87.5%
16 px 12 pt 1 rem 100%
18 px 13.5 pt 1.125 rem 112.5%
20 px 15 pt 1.25 rem 125%
24 px 18 pt 1.5 rem 150%
32 px 24 pt 2 rem 200%

The px and pt columns never change, because both are absolute units. The rem and percent columns hold only at a 16 px root. Change the root to 20 px, and 1.5 rem becomes 30 px instead of 24 px.

Five terms appear in every unit question. Here is what each one means.

Pixel (px)
The CSS reference unit, equal to one ninety-sixth of an inch. It is not the same as one dot on your screen.
Point (pt)
A print unit equal to one seventy-second of an inch, or 1.333 px.
Pica (pc)
A print unit equal to 12 points, one sixth of an inch, or 16 px.
em
A unit tied to the current font size. For font-size itself, it uses the inherited size from the parent.
rem
The “root em,” tied to the font size of the html element at the top of the page.

Which CSS Units Are Absolute and Which Are Relative?

Absolute units (px, pt, pc, in, cm, mm) have fixed sizes that never depend on other styles. Relative units (em, rem, percent) scale with a font size set somewhere else on the page.

The CSS Values and Units specification groups these into clear families. Absolute lengths all link to each other through the inch. Font-relative lengths, such as em and rem, take their size from an element’s font.

This split matters most when a size changes. Suppose a reader raises the default text size from 16 px to 20 px. A heading set at 24 px stays at 24 px. A heading set at 1.5 rem grows to 30 px, a rise of 25 percent.

Neither family is wrong. Absolute units suit fixed things, like a 1 px border or a printed page margin. Relative units suit text and spacing that should follow the reader’s settings.

Why Is One Inch 96 Pixels in CSS?

CSS defines 1 inch as exactly 96 px and 72 pt, so every absolute unit converts by fixed ratios. The spec keeps this 96-to-1 ratio because so much existing web content relies on it.

From that rule, the other ratios follow. One point is 96 divided by 72, or 1.333 px. One pica is 16 px, and one centimeter is about 37.80 px. One millimeter is about 3.780 px.

A CSS pixel is not always a single screen dot. The spec defines a “reference pixel” as a visual angle. At a reading distance of about 28 inches, one px looks about 0.26 mm wide. High-density screens then use several device dots for each CSS pixel.

One inch in pixels, points and picas Three bars of equal length. The pixel bar is marked every 16 px from 0 to 96. The point bar is marked every 12 pt from 0 to 72. The pica bar is marked from 0 to 6. Each mark lines up, showing 16 px equals 12 pt equals 1 pc. One CSS inch in three units pxptpc 0163248648096 0122436486072 0123456 Every mark: 16 px = 12 pt = 1 pc. Full bar: 1 inch.
The three rulers line up because CSS fixes 1 inch at 96 px, 72 pt and 6 pc.
Key figure: 16 px equals 12 pt. Multiply points by 4/3 to get pixels, or multiply pixels by 0.75 to get points.

How Is em Different From rem?

An em is based on the parent element’s font size, so it changes from place to place. A rem is always based on the root html font size, so it means the same thing across the whole page.

The Compounding Problem With em

Because em follows the parent, nested elements multiply. Take a root of 16 px and a rule that sets a span to 1.6 em. One span renders at 25.6 px. A span inside that span renders at 40.96 px, since 16 x 1.6 x 1.6 = 40.96.

The rem unit was created to avoid this. Set both spans to 1.6 rem, and both render at 25.6 px. Nesting has no effect, because both look only at the root.

A Detail That Trips People Up

The em rule has two sides. Used on font-size, 1 em equals the parent’s font size. Used on padding or margin, 1 em equals the element’s own font size. A button with 20 px text and 0.5 em padding gets 10 px of padding.

Nested em values compound, rem values do not Left side, em: root 16 px, outer span at 1.6 em is 25.6 px, inner span at 1.6 em is 40.96 px. Right side, rem: root 16 px, outer span at 1.6 rem is 25.6 px, inner span at 1.6 rem is also 25.6 px. Bar lengths are drawn to scale at 5 units per pixel. Same rule, nested twice: 1.6 em vs 1.6 rem Using em Using rem Root (html)Outer spanInner span Root (html)Outer spanInner span 16 px25.6 px40.96 px 16 px25.6 px25.6 px
Each em step multiplies by the parent’s size, while rem always looks back to the 16 px root.

When Should You Use pt Instead of px?

Use points for print style sheets and documents that will be printed, since print is measured in physical units. Use pixels, em or rem for screens, where the reference pixel sets the scale.

The spec draws the same line. For print, it anchors lengths to physical units like the inch. For screens, it anchors them to the pixel. That means a 1 in box on a phone is rarely one real inch.

Converting a print design to a web page is simple math. A 10 pt caption becomes 13.33 px, and a 24 pt headline becomes 32 px. A US Letter page, 8.5 by 11 inches, measures 816 by 1,056 CSS pixels.

Photos follow a different rule. Image pixels and printer dots per inch are separate from CSS units. To size a printed photo, see how to calculate print size from megapixels. For fast unit swaps in either direction, the typography converter for px, pt, em and rem handles nine units at the base you set.

Which Units Keep Text Readable When Readers Zoom?

Relative units like rem and em follow the reader’s chosen default text size, so they scale up for people who need larger type. Fixed pixel font sizes may ignore that setting in some browsers.

Web accessibility guidelines ask that text can be resized up to 200 percent without losing content or function. At a 16 px base, that doubles body text to 32 px. Layouts built with rem grow in step with the text.

A reference guide on font-size warns that px font sizes are not accessible. Some browsers do not let users change them. To see the effect, set a different base size in our calculator. Try 20 px, and see how every rem value shifts.

Here is a quick test for any stylesheet. Raise the browser’s default font size, then reload the page. Text set in rem grows, while text fixed in px stays put. Boxes set in px may then clip the larger text.

Screen shape is a separate question from text size. For width and height proportions, read aspect ratios explained.

Converting a font size?

The Typography Converter changes a value between px, pt, pc, in, cm, mm, em, rem and percent. Set the base font size, and it shows the result in pixels and points too.

Questions People Ask About CSS Font Units

How Many Points Is 16 Pixels?

16 pixels equals 12 points. CSS fixes 1 inch at 96 px and 72 pt, so each pixel is 0.75 pt and each point is about 1.333 px.

How Do You Convert px to rem?

Divide the pixel value by the root font size. At a 16 px root, 24 px divided by 16 gives 1.5 rem. At a 20 px root, the same 24 px is 1.2 rem.

Is em or rem Better for Font Sizes?

rem is easier to predict, because it always refers to the root size. em suits parts that should scale with their own container, such as padding inside a button.

Why Is 1rem Usually 16 Pixels?

The common browser default font size is 16 px, and rem reads the root font size. A reader who changes the default, or a stylesheet that sets the root, changes what 1 rem means.

Does a CSS Pixel Equal One Screen Pixel?

Not always. A CSS pixel is a reference unit of one ninety-sixth of an inch. High-density screens use several device dots to draw one CSS pixel, so it looks about the same size.

Where These Numbers Come From

References Used in This Article

This article is general web design education. Pixel values for em, rem and percent assume the stated root size. Reviewed for accuracy by Prof. Dr. Khalil Mudassar, PhD. Last updated September 27, 2026.


Author

shakeel-Muzaffar
Founder & Editor-in-Chief at  ~ Web ~  More Posts

Shakeel Muzaffar is the Founder and Editor-in-Chief of MultiCalculators.com, bringing over 15 years of experience in digital publishing, product strategy, and online tool development. He leads the platform's editorial vision, ensuring every calculator meets strict standards for accuracy, usability, and real-world value. Shakeel personally oversees content quality, formula verification workflows, and the platform's commitment to publishing tools that are genuinely useful for students, professionals, and everyday users worldwide.