- 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