- From: Erik van der Poel <erik@netscape.com>
- Date: Wed, 19 Jan 2000 09:29:59 -0800
- To: Matthew Brealey <thelawnet@yahoo.com>
- CC: www-style <www-style@w3.org>
Matthew Brealey wrote:
>
> Erik van der Poel wrote:
> >
> > The spec gives the following example for "ex":
> >
> > H1 { margin: 1ex }
> >
> > If the font-family property contains multiple fonts, which font is used
> > to determine the length of 1ex?
>
> The one that is actually used for the H1 element; e.g., H1 {font-family:
> notavailable, notavailable, sans-serif} uses the x-height of the
> sans-serif font that is selected by the ua
No, the fonts in the font-family list are tried, in order, not only to
find a font that is available, but also to find a font that contains a
glyph for the current character(s).
For example, let's suppose you have Arial and MS Gothic (Japanese) on
your system. Suppose the font-family says this:
font-family: Arial, "MS Gothic";
If there is a Japanese character in the document, the implementation
will not find a glyph for it in Arial, so it must go to the next font
(MS Gothic), where it *will* find an appropriate glyph.
Even in your example (not-avail, not-avail, sans-serif) the
implementation will process a list of fonts, because sans-serif can be
defined in terms of multiple fonts. There are examples of this in the
spec:
http://www.w3.org/TR/REC-CSS2/fonts.html#q47
The serif example shows a list of fonts in the src descriptor (which I'm
not sure are supposed to be processed in the same way as font-family
lists), and the Excelsior example shows the use of the unicode-range
descriptor to multiplex a group of fonts. I'm assuming that you can use
unicode-range in this way with the generics (serif, sans-serif, etc)
too.
Even if there is no generic font in the font-family list, the spec says
that the implementation can use the inherited or UA-dependent
font-family value as a fallback. The UA-dependent value could contain a
generic font, of course.
So, my question still stands: Which physical font(s) must the
implementation look at to determine the real value of "ex"? I would like
to propose the following spec:
The implementation SHOULD use the first available font in
the font-family list to determine the x-height that forms
the basis for the ex unit. If none of the fonts in the
font-family property are available, the implementation
MAY use the inherited or a UA-dependent font-family value
for further searching.
Erik
Received on Wednesday, 19 January 2000 12:33:33 UTC