Version 3 (modified by 12 years ago) ( diff ) | ,
---|
Line Breaking in WebKit
WARNING: This page contains forward looking statements, which should not yet be considered an accurate description of WebKit.
Line Breaking
CSS3 Text defines a set of rules governing default line breaking behavior, some of which is very specific, i.e., testable and repeatable among browsers, and some of which is generic, i.e., not standardized. An example of the former is that the non-tailorable line breaking classes defined by the Unicode Line Breaking Algorithm, Unicode Technical Report #14 UAX14, must be honored; an example of the latter is that soft break opportunities are not concretely defined.
The line-break
property
In order to customize line breaking behavior, CSS3 Text intorduces the inheritable line-break property, with the following standard values:
auto
loose
normal
strict
If not specified, the initial (default) value is auto
.
CSS3 Text does not fully define line breaking behavior for any of these values. Rather, it specifies certain constraints or absence of constraints that are expected to operate as an additional layer of behavior on top of the default line breaking behavior rules.
The former -webkit-line-break
property
Since Safari 3.0, WebKit has supported a non-standard -webkit-line-break
property, based on the earlier -khtml-line-break
property in Safari 2.0, which accepted one of two values:
normal
(default)after-white-space
The behavior for normal
was defined by the Safari CSS Reference as "a standard line-breaking rule", while after-white-space
was defined as "the line breaks after white space", neither of which definitions are sufficiently precise to obtain interoperability.
The new -webkit-line-break
property
With the introduction of CSS3 Text features, and since its properties have not yet been designated non-prefixed by the CSS Working Group, it is necessary to merge the value space of the former -webkit-line-break
property and the new line-break
property into a newly defined -webkit-line-break
property that accepts the following values:
auto
(default)loose
normal
strict
after-white-space
Note that this functional merger results in the value auto
being returned as the default value instead of the former normal
value.