Re: font sizes in ems

Gayle Kidder wrote:
> ...An em (which is inadequately
> defined in CSS1) is, as best I can understand, the total size of the
> font, measured more or less from the bottom of the descenders to the
top
> of the ascenders, or roughly the width of a capital M in the font.
> (Historically this gets very complicated, but let's start from
there.)

Please, don't get historical. For most of my graphical career, there
were approximately 72.46 points per inch, not the nice round 72
commonly used today. All my Haberule type gauges and printer's
comparative scales reflect that. And yet, for as long as I've been
around, an em has been the square of a type font. What this means is
that whatever the type size, that is also the size of an em for that
font. 12pt type? 1em = 12pt. 30px type? 1em = 30px. etc. etc.
 
> If I specify a font size of 1em, then, it comes out considerably
larger
> than the default body type size of the user. I've experimented with
> several different default fonts and sizes and find that in order to
> approximate the user's default size you need to specify something
> between .6 and .8 em, with .8em being the most reliable conversion
among
> those I tested.

If so, this is just plain wrong on the part of the browsers. If the
BODY font size on the reader's stylesheet is 12pt Times Roman, setting
the type-size to 1em without any other changes should have no effect at
all.

> This, of course, varies with the font...

It should vary with font-family, because the size of the letters are
not directly related to type size. The type size simply determines how
much vertical space is to be allotted, it says nothing about how much
of that space is filled with a character. Look at some fancy scripts
with very high acenders and descenders and tiny x-height. You need a 20
type size to look as big as a 10pt Helvetica. And there are some really
weird fonts where the vertical dimensions of the characters exceed the
type size -- without leading, ascenders and descenders can overlap.
(such fonts would not have been possible before phototypesetting)

> Therefore, I can't see how one can advocate starting with an em as
the
> recommended unit for an initial font spec, since users' default fonts
> are liable to vary considerably. Or can one recommend a standard
> conversion value for an em to user's default, say .8?

The fact that user's default font sizes will vary is the reason for the
advocacy.

> Another typographer friend of mine has this to say:
>  "[Designating font sizes in ems] is literally nonsensical in
> traditional terms.  An em is a unit of space; 12pt is a unit of size
..
> it is meaningful to say "a 12-pt em" or "a 12-pt font" but not a
"1-em
> font" -- the size of the em varies according the size of the font,
not
> vice versa."

Of course it's nonsensical in traditional terms because in traditional
terms a point is approx. 1/72 inch and when you print a point to paper,
that's what it is. But on the reader's display, an author has no idea
what a point is going to be. On the Macintosh, a point is a pixel. On a
high-res display that may be 50% of actual size. Initially, I advocated
points as preferable to pixels, but I've come to see point measures
can't be practical unless users are able to adjust the point to pixel
mapping of their displays.

> Yet I seem to see designating font sizes in ems being advocated in
this
> group. Do I misunderstand? Any clarification gladly solicited.

The meaning of em has been discussed in this forum many times. 1em
equals 100% of the font size.

I just tested NSN 4.01 on Windows95. Netscape almost has it right, BODY
spec'd as 1em is exactly the same size as my default font size, EXCEPT,
for some strange reason, for the Verdana. (I have not yet installed
MSIE 4.0B2.)

Your test page is meaningless. You are comparing a reader-font-relative
size of 1em to an absolute size of 10pt. To make your test valid, add
this to the declaration:

          BODY { font-size: 10pt }

Now, all of your em measurements should refer to the 10pt BODY (the
parent of P), and so 1em should equal 10pt for each of the fonts.

As to why you're getting a different relationship in MSIE and NSN -- is
the default font size exactly the same in both browsers? Remember,
since you did not explicitly set a size on BODY, your em measurements
are relative to the _default_ font size of the browser. That's the
whole point!

All you need to remember is that

(1) 1em = 100% of the font size.

(2) you have no way of knowing the point or pixel size of a client's
default font, therefore em or percent are the best way to give a reader
a font size relative to what she/he is accustomed to reading. 

David Perrell

Received on Thursday, 17 July 1997 18:13:43 UTC