Em Vs Percent Widths

From CSS Discuss

Jump to: navigation, search


Characteristics of using em width vs. % width on text containers


Both em and % are relative measures. The difference is what each is relative to. Em is always relative to font size. % is relative to the containing block, usually the body, a div, or a table, unless applied to font-size, in which case it applies to the parent font-size.


When you set your column div widths in em, as font size is changed, the relative widths of the columns stay the same, but the absolute widths only change when font size is changed. Whether a horizontal scoll will appear depends on the viewport width, on the widths you set, and on the font size actually used, which means it is possible for the font size used to cause a horizontal scroll.

Using em for column widths means line lengths in characters will not vary as text size is changed. If at 12pt default in div#leftcol 'The quick brown fox jumps over' fits exactly all on one line, then it will do the same if the default is instead 18pt or 9pt.

If you design a page with no images using em widths to look the way you want in a 1000px wide viewport with 16px defaults (e.g. for 1024x768 resolution), then the page should look proportionally identical with 32px defaults in a 2000px wide viewport (e.g. for 2048x1536 resolution).


In contrast, when you set column widths as a % of the body, the column widths change only when the viewport width is changed, not when font size is changed. This means regardless of actual font size, a change in font size won't cause a horizontal scroll. This also means the columns can get very crowded or even inadquate in width if the actual font size is large. If at 12pt default in an 800px wide viewport in div#leftcol 'The quick brown fox jumps over' fits exactly all on one line, as text size is increased to 24pt, that line will split onto two or more lines.


Here are two examples from the CSS Zen Garden. The first is Elastic Lawn, an Em width design. Resize the text in your browser to see how the layout expands as the text size increases. The second is Tranquille, a Percent width design. Resize your browser window to see the columns adjust to the width of the viewport.

You can also find many examples of both Em and Percent width designs at Liquid Designs.

Personal tools