Browsers have a great built-in usability feature: they allow users to set their own font size according to each individual’s needs and preferences. Unfortunately, lots of websites make this feature useless by setting the font in absolute values.
When setting absolute values for font sizes across your website you ensure that everyone will see the website at that font size. While this might make sense for designers coming from the print world, we must keep in mind the important aspect here: websites are not printed materials. The web is an entirely different medium and the power to adjust to the needs of the user is one of its strong points. For a lot of different reasons, users will want to increase or decrease the font size on their screens at some point or another so why deny them this right?
The trick is to set all font sizes relatively. Relatively to what, you might ask? Every browser on every operating system has a default value for font size. Since this size isn’t regulated anywhere, browser manufacturers have taken matters into their own hands and while these defaults can be somewhat similar, the differences between them can make a website’s developer life a living hell.
A lot of testing has produced a magic number for everyone to use: 62.5%. Remember it! Setting a font size to 62.5% on the whole page equals to setting it to 10px and what’s important, this works on practically every platform available.
So the first step is to forget about your pixels, points, picas or whatever font size measure unit you’re using. A smart fellow with a weird looking hairdo said it some time ago–everything is relative–and it’s time to apply that to your web coding. After setting the font size on your page’s body element to 62.5%, any other change in font size must be relative too, so use either percentages or ems. These two ways of specifying font sizes are very similar, thus 110% equals 1.1em, 200% equals 2em and so on. You basically change the “%†for “em†and divide by 100. Starting with a value that’s the same in rendering size as ‘10px’, 1.1em or 110% would be the equivalent of a ‘11px’ font size.
You can even take this one step further and specify your widths and heights in relative units thus creating “liquid†layouts, but that’s a whole different subject.
Allowing your users to change the font size might seem like a small issue but, after all, it’s just a sum of small issues like this one that can turn a bad internet experience into a good one.

Every browser (even IE) allows you to adjust the font size with Ctrl+Mouse wheel. Even when you’re using fixed size in CSS.
Please, stop this basic usability bla bla.
You’re quite wrong here. You might want to go ahead and make a simple test: set your font size to ‘11px’ on your body element and then try to change it by CTRL+mouse wheel or by using the browser’s menu. IE will not budge.
Don’tcha love a know-it-all with an aggressive attitude?
Thanks for the write-up. I had snarfed (with permission) some CSS that does this and never really understood what was going on. Now I know.
This article really doesn’t explain very clearly what’s going on. Saying 62.5% is a magic number isn’t particularly helpful.
The majority of browsers use 16px as their default font size; thus setting font-size:100% in your body tag gives you a base font-size of 16px. 1em now equals 16px.
87.5% 1em = 14px
75% 1em = 12px
62.5% 1em= 10px
Those are good percentages to work with as you know that 1em will be faithfully rendered as it’s an integer. This is especially true in a liquid layout where you may set the width of a div to be 7em.
An example:
if font-size:80%
1em = 12.8px
a div width of 7em = 89.6px, which may cause rounding errors and differences in rendering
Ant, it’s not just to set a default size though, it’s also to make it easy to specify your base sizes.
If you want the base size of text to be 13 pixels high, you specify 1.3em. Tell me off the top of your head how many ems makes 13pixels when you’ve used 75% instead? :)
Thanks for the comment, Badger.
I must confess, em sizes in CSS are a little confusing to me. Most of my confusion arises, I think, from the fact the inconsistencies between browsers. Still, I’d like to learn more about them–especially since I use them regularly.
So, what you’re saying is that it’s unwise to set body {font-size: 80%;} upfront? Why is that recommended by A List Apart (I believe)?
DESIGNORATI