- From: Glenn Adams <glenn@skynav.com>
- Date: Sun, 20 Oct 2013 12:06:39 -0600
- To: "L. David Baron" <dbaron@dbaron.org>
- Cc: W3C Style <www-style@w3.org>
- Message-ID: <CACQ=j+etUV1PNHwA0RJVvZ=EsXcpNOMhg5FzRwAy+1i9yYwprg@mail.gmail.com>
On Sun, Oct 20, 2013 at 11:46 AM, Glenn Adams <glenn@skynav.com> wrote: > > > On Sat, Oct 19, 2013 at 2:18 AM, L. David Baron <dbaron@dbaron.org> wrote: > >> On Thursday 2013-10-17 10:52 -0600, Glenn Adams wrote: >> > 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." >> > >> > 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). >> > >> > 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> >> > >> > 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. >> >> This sentence is not intended to refer to text inside descendant >> elements, only text in the element itself. That could certainly be >> clearer. >> >> What it's referring to is that the font matching algorithm is >> per-character, so different fonts might be used for different >> characters within the element. These fonts might have different >> sizes (due to unavailability of some font sizes with bitmap fonts) >> or might have font metrics that suggest different normal line >> heights, or (a case the spec doesn't cover) might have font metrics >> that suggest that normal line height has different positions >> relative to the baseline. >> > > I've did some research on Blink/Webkit, and both resolve line-height > 'normal' on a block element to a single value that is used by the > subsequent process of computing each line box's height: > > resolvedLineHeight = *ascent* + *descent* + *leading* > > where the dependent variables are based only on metrics obtained from the > font associated with the single computedFontFamily associated with the > block. > I suppose *computedFontFamily* is the wrong term here. I'm not sure we have a good term for the actual font used for a given element, i.e., neither *used value* or *actual value* of the font-family property seem adequate. [I'm not sure if we define these latter two anywhere for font-family for that matter.] > > The value of *leading* here is based on a per-platform-font metric, e.g., > on Windows the TEXTMETRICS.tmExternalLeading field, on Mac, > CTGetFontLeading(), etc. > > Does FF use this same strategy? If all UAs use the same strategy, I wonder > (again) if we should remove the language about "may [use] largest font > size"? > > > >> >> As Alan points out, the test isn't testing the quoted text. >> >> -David >> >> -- >> 𝄞 L. David Baron http://dbaron.org/ 𝄂 >> 𝄢 Mozilla https://www.mozilla.org/ 𝄂 >> Before I built a wall I'd ask to know >> What I was walling in or walling out, >> And to whom I was like to give offense. >> - Robert Frost, Mending Wall (1914) >> > >
Received on Sunday, 20 October 2013 18:07:27 UTC