- From: fantasai <fantasai@escape.com>
- Date: Wed, 18 Dec 2002 08:19:51 -0500
- To: www-style@w3.org
CSS3 White-Space Processing
===========================
(based on Ian Hickson's original text, modified through discussion)
For each inline (including anonymous inlines), the following steps are
performed, ignoring bidi formatting characters as if they were not
there:
1. Each non-linefeed whitespace character is treated as per the
'white-space-treatment' property.
2. If 'all-space-treatment' is set to 'preserve', any sequence of
spaces (U+0020) unbroken by an element boundary is treated as
a sequence of non-breaking spaces. However, a line breaking
opportunity exists at the end of the sequence.
3. Each linefeed character is treated as per the 'linefeed-treatment'
property.
4. If 'all-space-treatment' is set to 'collapse',
1. every tab (U+0009) is converted to a space (U+0020)
2. any space (U+0020) following another space (U+0020)--even
a space before the inline, if that space also has
'all-space-treatment' set to collapse--is removed.
Then, the entire block is rendered. Inlines are laid out, taking bidi
reordering into account, and wrapping as specified by the 'wrap-option',
'line-break' and 'word-break' properties.
As each line is laid out,
1. If a space (U+0020) at the beginning of a line has 'all-space-
treatment' set to 'collapse', it is removed.
2. All tabs (U+0009) are rendered as a horizontal shift that lines
up the start edge of the next glyph with the next tab stop. Tab
stops occur at points that are mutiples of 8 times the width of
a space (U+0020) rendered in the block's font from the block's
starting content edge.
3. If a space (U+0020) at the end of a line has 'all-space-
treatment' set to 'collapse', it is also removed.
-------------------
- tab stops line up in the block regardless of font changes
- pre-wrap text can break at whitespace, but whitespace is preserved
- auto-transformed linefeeds are still break points
Received on Wednesday, 18 December 2002 08:19:46 UTC