Re: Inline formatting model document

First, I'd like to thank David and Eric for posting documents about
inline boxes.

It was especially nice to see that David added some description of the
multiple fonts that could potentially appear inside a single inline box.
This is very important in my line of work (internationalization).

Eric mentions the "em" in relation to the font-size, and I hope that
CSS3 will also do so.

The following is a brief description of the things that I am
particularly concerned about, and which I hope will be addressed in
CSS3:

1. font-size. This should be spelled out very clearly. It should be
defined in terms of the "em square". I could live with "em box", but I
think "em square" is the more common term.

2. half-leading. The spec should clearly state that the half-leading is
added to the top and bottom of the font-size. (I would like to remove
the term "when set solid" from the spec, since it's not appropriate in
the digital font world. Similarly, leading and half-leading are not very
appropriate. Since the terms padding and margin are already used for
other purposes, how about calling it line spacing or font spacing? Or
vertical spacing, to avoid confusion with letter-spacing.)

3. line-height: normal. The spec for "normal" is far too loose. We want
to ensure that UAs implement this consistently, especially since it is
the initial value. If the intent was to use the font's recommended
leading for this, then that should be spelled out in the spec, so that
all UAs do that.

4. line-height and multiple fonts. Each line box can contain multiple
inline boxes, and each inline box can contain multiple fonts. (Perhaps
we could call them ininline boxes? I.e. line -> inline -> ininline. I'm
kidding. We need a better name for these. I'll call them font boxes for
now.) We need to decide whether the half-leading is added to the top and
bottom of the font-size of each inline box, or to each font box. Also,
if we are going to add it to each font box, then we probably want a
line-height of "normal" to make the half-leading depend on the font.
I.e. a font-specific half-leading value is added to the top and bottom
of the font box. Assuming that each font box is vertically aligned
according to the vertical-align property of the inline element, the
inline box top will correspond to the highest font box top, and the
inline box bottom will correspond to the lowest font box bottom, in the
same way that inline boxes affect line boxes. This also means that the
height of an inline box is *not* the line-height value. It could be
bigger than the line-height value, for the same reasons that a line box
can be taller than line-height.

5. underline. Fonts usually have a recommended underline position and
thickness. However, if we draw the underlines for the various font boxes
at various positions and thicknesses, it won't look so good. I don't
know whether CSS3 should mandate any specific behavior in this area. For
example, we could specify that an additional underline box is added when
the underline property is set. Or we could specify that the underline
box is *always* there, and always affects the line box height, though it
would be invisible if underline was not set. Also, we might want to
specify that a contiguous underline potentially spanning multiple font
boxes must be at a uniform position and thickness. Note that recommended
underlines often occur inside the em square for Western fonts, but I'm
not sure that this is true for East Asian fonts. So we may need to allow
underline boxes and font boxes to overlap in some cases (e.g. Western),
or protrude (e.g. East Asian).

6. padding and border. The spec should clearly state that the padding is
added to the top and bottom of the font-size.

Erik

Received on Saturday, 15 January 2000 03:59:28 UTC