Re: line-height: normal and multiple descendant font sizes

Le 2013-10-17 12:52, Glenn Adams a écrit :
> In CSS2.1, we have the following in Section 10.8.1:
> 
> "When an element contains text that is rendered in more than one font, 
> user
> agents may determine the 'normal'
> 'line-height'<http://www.w3.org/TR/CSS2/visudet.html#propdef-line-height>
> value
> according to the largest font size."

Glenn,

The "may" word in the sentence makes this optional and not required.

> 
> I'm curious if any UA actually implements this. I have tested Chrome,
> Opera, and Safari UAs, and none of these UAs seems to use the largest 
> font
> size (of descendant fonts).

It seems (I am quite busy right now; did not check thoroughly) we only 
have 1 test on this:

http://test.csswg.org/suites/css2.1/nightly-unstable/html4/line-height-largest-001.htm

but this interactive test is good IMO for testing that sentence:

http://test.csswg.org/suites/css2.1/nightly-unstable/html4/inline-formatting-context-010b.htm


> 
> My test consisted of the following fragment:
> 
> <p style="line-height: normal">
> <span style="font-size: 12pt; border: 1px solid #C0C0C0">X</span></br>
> <span style="font-size: 36pt; border: 1px solid #C0C0C0">X</span></br>
> <span style="font-size: 18pt; border: 1px solid #C0C0C0">X</span></br>
> </p>

I'll create that test and upload it later... very busy right now..

The borders are not necessarly a good, reliable indicator of where the 
line box starts (at the top) and ends (at the bottom) since borders are 
not part of line boxes. Background color is a more reliable way to 
display line boxes.

"
This means that if the height specified by 'line-height' is less than 
the content height of contained boxes, backgrounds and colors of padding 
and borders may "bleed" into adjoining line boxes. User agents should 
render the boxes in document order. This will cause the borders on 
subsequent lines to paint over the borders and text of previous lines.
"

Eg:

http://test.csswg.org/suites/css2.1/nightly-unstable/html4/border-padding-bleed-003.htm

> 
> If a UA implements the above language, then I would expect that each of 
> the
> three lines be assigned a single line height (of 36pt), where the 
> leading
> on each line is computed according to the following language:
> 
> "Still for each glyph, determine the leading L to add, where L =
> 'line-height' 
> <http://www.w3.org/TR/CSS2/visudet.html#propdef-line-height>
>  - AD. Half the leading is added above A and the other half below D, 
> giving
> the glyph and its leading a total height above the baseline of A' = A + 
> L/2
> and a total depth of D' = D + L/2."
> 
> Also, I should note that "the largest font size" is ambiguous in the 
> above
> language, since it might mean:
> 
>    1. largest font size of descendant non-replaced elements, i.e.,
>    descendants only;
>    2. largest font size of descendant non-replaced elements and element 
> (on
>    which line-height of 'normal' is specified), i.e., descendants and 
> self.
> 
> G.

Gérard

Received on Thursday, 17 October 2013 18:27:47 UTC