-
Notifications
You must be signed in to change notification settings - Fork 756
Description
The spec for https://drafts.csswg.org/css-rhythm/#line-height-step says that
It is usually recommended to set the line-height lower than the step unit. The used line height can increase due to several factors such as the use of vertical-align or font fallback.
The initial value of line-height is normal which is defined like this:
normal
Tells user agents to set the used value to a "reasonable" value based on the font of the element. The value has the same meaning as<number>. We recommend a used value for 'normal' between 1.0 to 1.2. The computed value is 'normal'.
Actual implementations are know to vary, and in practice the actual numerical value of line-height: normal is unpredictable. Ideally authors will not rely on it and manually set the line-height when they want to use line-height-step, but we should try to be robust when they don't.
If normal in a particular browser on a particular os with a particular font is equivalent to 1.15, and on a different browser/os/font combination, it is equal to 1.25, and an author leaves line-height at the default value, and sets line-height-step to 1.2em, things will look fine in one browser and not in the other, and the author may not know if they do not test in that particular browser/os/font combination.
I think it is quite important to reduce or eliminate this kind of situation, so we should do something.
How about this:
When line line-height-step is not 0, then line-height: normal is treated as line-height: 1 when computing the used value. This would usually be appropriate (and in the odd case where it is not, it is always possible to set a manual value), and would eliminate variation between browsers, making naïve use of line-height-step more robust.