Chapter 16 - Text - 16.6.1 The 'white-space' processing model
Go to the relevant page of the specification.
- bidi-001
-
The bidi algorithm and inlines in CSS
- bidi-003
-
The bidi algorithm and inlines in CSS
- bidi-004 (may)
-
The bidi algorithm and inlines in CSS
- bidi-004a
-
Bidi Codes, White space, and Tree structure
The final order of characters in a block container is the same as if markup had been stripped, consecutive space collapsed in logical order, and the resulting character sequence, including any bidi codes, had been passed to an implementation of the Unicode bidirectional algorithm for plain text that produced the same line-breaks as the styled text. - inlines-016 (ahem)
-
Inline box model: space collapsing, padding, white-space, et al
If a space (U+0020) at the beginning of a line has 'white-space' set to 'normal', then it is removed, even if there's padding. - line-breaking-bidi-001
-
Line breaking and the bidi algorithm
- line-breaking-bidi-002
-
Line breaking and the bidi algorithm (with hebrew character)
- line-breaking-bidi-003
-
Line breaking and the bidi algorithm (no breaks)
- white-space-007 (ahem)
-
white-space
'white-space: normal' and 'white-space: nowrap' should collapse sequences of white space. Regarding wrapping, line breaking opportunities are determined on the text prior to white space collapsing steps. - white-space-collapsing-001
-
white-space normal: collapsing through padding, borders, margins
- white-space-collapsing-002
-
white-space normal: collapsing through padding, borders, margins
- white-space-collapsing-003
-
white-space normal: collapsing at line edges
- white-space-collapsing-004
-
white-space normal: simple tests
- white-space-collapsing-005
-
white-space normal: simple tests
- white-space-collapsing-bidi-003
-
Trailing spaces in table cells
- white-space-collapsing-breaks-001
-
Line Breaking in Collapsed White Space
Line break opportunities are determined before white space collapsing. - white-space-mixed-001
-
white-space: mixed tests
- white-space-mixed-002
-
white-space: mixed tests (simple)
- white-space-mixed-003
-
white-space: mixed tests (simple)
- white-space-mixed-004 (ahem, interact)
-
white-space: mixed tests
- white-space-normal-001
-
white-space normal: simple tests
- white-space-normal-002
-
white-space normal: simple tests
- white-space-normal-003
-
white-space normal: UNICODE space characters
- white-space-normal-004
-
white-space normal: UNICODE space characters with inline elements
- white-space-normal-005
-
white-space normal: zero width non-breaking space
- white-space-normal-006
-
white-space normal: zero width non-breaking space
- white-space-normal-007
-
white-space normal: zero width non-breaking space
- white-space-normal-008
-
white-space normal: zero width non-breaking space
- white-space-normal-009
-
white-space normal: zero width non-breaking space
- white-space-nowrap-001
-
white-space nowrap: basic test
- white-space-nowrap-005
-
white-space nowrap: zero width non-breaking space
- white-space-nowrap-006
-
white-space nowrap: zero width non-breaking space
- white-space-pre-001 (ahem)
-
white-space pre: simple tests
- white-space-pre-002
-
white-space pre: simple tests
- white-space-pre-005
-
white-space pre: zero width non-breaking space
- white-space-pre-006
-
white-space pre: zero width non-breaking space
- white-space-pre-007
-
white-space and word-spacing
- white-space-processing-001 (ahem)
-
Block level elements with text and white space
Text within a block element is treated like an anonymous inline element for white space processing model. - white-space-processing-002 (ahem, may)
-
White-space 'normal' with tab adjoining linefeed
A tab before a linefeed is removed if 'white-space' is set to 'normal'. The linefeed may be rendered as a space or not rendered. - white-space-processing-003 (ahem, may)
-
White-space 'nowrap' with tab adjoining linefeed
A tab before a linefeed is removed if 'white-space' is set to 'nowrap'. The linefeed may be rendered as a space or not rendered. - white-space-processing-004 (ahem, may)
-
White-space 'pre-line' with tab adjoining linefeed
A tab before a linefeed is removed if 'white-space' is set to 'pre-line'. The linefeed may be rendered as a space or not rendered. - white-space-processing-005 (ahem, may)
-
White-space 'normal' with carriage return adjoining linefeed
A carriage return before a linefeed is removed if 'white-space' is set to 'normal'. The linefeed may be rendered as a space or not rendered. - white-space-processing-006 (ahem, may)
-
White-space 'nowrap' with carriage return adjoining linefeed
A carriage return before a linefeed is removed if 'white-space' is set to 'nowrap'. The linefeed may be rendered as a space or not rendered. - white-space-processing-007 (ahem, may)
-
White-space 'pre-line' with carriage return adjoining linefeed
A carriage return before a linefeed is removed if 'white-space' is set to 'pre-line'. The linefeed may be rendered as a space or not rendered. - white-space-processing-008 (ahem, may)
-
White-space 'normal' with space adjoining linefeed
A space before a linefeed is removed if 'white-space' is set to 'normal'. The linefeed may be rendered as a space or not rendered. - white-space-processing-009 (ahem, may)
-
White-space 'nowrap' with space adjoining linefeed
A space before a linefeed is removed if 'white-space' is set to 'nowrap'. The linefeed may be rendered as a space or not rendered. - white-space-processing-010 (ahem, may)
-
White-space 'pre-line' with space adjoining linefeed
A space before a linefeed is removed if 'white-space' is set to 'pre-line'. The linefeed may be rendered as a space or not rendered. - white-space-processing-011 (ahem)
-
White-space 'pre' with sequence of spaces
A sequence of spaces are not collapsed when 'white-space' is set to 'pre'. - white-space-processing-012 (ahem)
-
White-space 'pre-wrap' with sequence of spaces
Sequence of spaces are not collapsed when 'white-space' is set to 'pre-wrap'. - white-space-processing-013 (ahem)
-
White-space 'pre-wrap' and line opportunity with sequence of spaces
A line breaking opportunity is introduced at the end of a sequence of spaces when 'white-space' is set to 'pre-wrap'. - white-space-processing-014 (ahem, may)
-
White-space 'normal' and linefeed characters
Linefeed characters are transformed into spaces, zero-width space, or not rendered when 'white-space' is set to 'normal'. - white-space-processing-015 (ahem)
-
White-space 'nowrap' and linefeed characters
Linefeed characters are transformed into spaces, zero-width space, or not rendered when 'white-space' is set to 'nowrap'. - white-space-processing-016 (ahem)
-
White-space 'pre' and linefeed characters
Linefeed characters are not transformed when 'white-space' is set to 'pre'. - white-space-processing-017 (ahem)
-
White-space 'pre-line' and linefeed characters
Linefeed characters are not transformed when 'white-space' is set to 'pre-line'. - white-space-processing-018 (ahem)
-
White-space 'pre-wrap' and linefeed characters
Linefeed characters are not transformed when 'white-space' is set to 'pre-wrap'. - white-space-processing-019 (ahem)
-
White-space 'normal' and tabs
Tabs are converted to spaces when 'white-space' is set to 'normal'. - white-space-processing-020 (ahem)
-
White-space 'nowrap' and tabs
Tabs are converted to spaces when 'white-space' is set to 'nowrap'. - white-space-processing-021 (ahem)
-
White-space 'pre-line' and tabs
Tabs are converted to spaces when 'white-space' is set to 'pre-line'. - white-space-processing-022 (ahem)
-
White space processing model with 'space' characters
One space with 'white-space' set to 'normal' adjoining a space with 'white-space' set to 'normal' collapse into one space. - white-space-processing-023 (ahem)
-
Two spaces adjoining with 'white-space' 'normal'/'nowrap'
One space with 'white-space' set to 'normal' adjoining a space with 'white-space' set to 'nowrap' collapse into one space. - white-space-processing-024 (ahem)
-
Two spaces adjoining with 'white-space' 'normal'/'pre-line'
One space with 'white-space' set to 'normal' adjoining a space with 'white-space' set to 'pre-line' collapse into one space. - white-space-processing-025 (ahem)
-
Two spaces adjoining with 'white-space' 'nowrap'/'normal'
One space with 'white-space' set to 'nowrap' adjoining a space with 'white-space' set to 'normal' collapse into one space. - white-space-processing-026 (ahem)
-
Two spaces adjoining with 'white-space' 'nowrap'/'nowrap'
One space with 'white-space' set to 'nowrap' adjoining a space with 'white-space' set to 'nowrap' collapse into one space. - white-space-processing-027 (ahem)
-
Two spaces adjoining with 'white-space' 'nowrap'/'pre-line'
One space with 'white-space' set to 'nowrap' adjoining a space with 'white-space' set to 'pre-line' collapse into one space. - white-space-processing-028 (ahem)
-
Two spaces adjoining with 'white-space' 'pre-line'/'normal'
One space with 'white-space' set to 'pre-line' adjoining a space with 'white-space' set to 'normal' collapse into one space. - white-space-processing-029 (ahem)
-
Two spaces adjoining with 'white-space' 'pre-line'/'nowrap'
One space with 'white-space' set to 'pre-line' adjoining a space with 'white-space' set to 'nowrap' collapse into one space. - white-space-processing-030 (ahem)
-
Two spaces adjoining with 'white-space' 'pre-line'/'pre-line'
One space with 'white-space' set to 'pre-line' adjoining a space with 'white-space' set to 'pre-line' collapse into one space. - white-space-processing-031 (ahem)
-
Two spaces adjoining with 'white-space' 'normal'/'pre'
One space with 'white-space' set to 'normal' adjoining a space with 'white-space' set to 'pre' remain two spaces. - white-space-processing-032 (ahem)
-
Two spaces adjoining with 'white-space' 'normal'/'pre-wrap'
One space with 'white-space' set to 'normal' adjoining a space with 'white-space' set to 'pre-wrap' remain two spaces. - white-space-processing-033 (ahem)
-
Two spaces adjoining with 'white-space' 'nowrap'/'pre'
One space with 'white-space' set to 'nowrap' adjoining a space with 'white-space' set to 'pre' remain two spaces. - white-space-processing-034 (ahem)
-
Two spaces adjoining with 'white-space' 'nowrap'/'pre-wrap'
One space with 'white-space' set to 'nowrap' adjoining a space with 'white-space' set to 'pre-wrap' remain two spaces. - white-space-processing-035 (ahem)
-
Two spaces adjoining with 'white-space' 'pre-line'/'pre'
One space with 'white-space' set to 'pre-line' adjoining a space with 'white-space' set to 'pre' retain two spaces. - white-space-processing-036 (ahem)
-
Two spaces adjoining with 'white-space' 'pre-line'/'pre-wrap'
One space with 'white-space' set to 'pre-line' adjoining a space with 'white-space' set to 'pre-wrap' retain two spaces. - white-space-processing-037 (ahem)
-
White-space 'normal' and space at beginning of line
Space at beginning of line is removed when 'white-space' is set to 'normal'. - white-space-processing-038 (ahem)
-
White-space 'nowrap' and space at beginning of line
Space at beginning of line is removed when 'white-space' is set to 'nowrap'. - white-space-processing-039 (ahem)
-
White-space 'pre-line' and space at beginning of line
Space at beginning of line is removed when 'white-space' is set to 'pre-line'. - white-space-processing-040 (ahem)
-
White-space 'pre-wrap' and space at beginning of line
Space at beginning of line is not removed when 'white-space' is set to 'pre-wrap'. - white-space-processing-041 (ahem)
-
White-space 'pre' and space at beginning of line
Space at beginning of line is not removed when 'white-space' is set to 'pre'. - white-space-processing-042 (ahem)
-
Tab width
Tabs (when rendered) render spaces at 8 character stops. That is, within a line, split the line into 8 character lengths. The tab would continue until the end of the next length. So if there are already 3 characters in a line, the tab would be rendered as 5 spaces. - white-space-processing-043 (ahem)
-
White-space 'normal' and space at end of line
Space is removed at the end of the line when 'white-space' is set to 'normal'. - white-space-processing-044 (ahem)
-
White-space 'nowrap' and space at end of line
Space is removed at the end of the line when 'white-space' is set to 'nowrap'. - white-space-processing-045 (ahem)
-
White-space 'pre-line' and space at end of line
Space is removed at the end of the line when 'white-space' is set to 'pre-line'. - white-space-processing-046 (ahem)
-
White-space 'pre' and space at end of line
Space is not removed at the end of the line when 'white-space' is set to 'pre'. - white-space-processing-047 (ahem)
-
White-space 'pre-wrap' and space at end of line
Space is not removed at the end of the line when 'white-space' is set to 'pre-wrap'. - white-space-processing-048 (ahem)
-
Floats and line opportunity with 'white-space'
A line breaking opportunity is not introduced with floats. - white-space-processing-049 (ahem)
-
Floats and line-breaking opportunities with 'white-space'
A line breaking opportunity is not introduced with an absolutely positioned element. - white-space-processing-050 (ahem)
-
White-space 'normal' on a 'pre' element
The 'white-space' property set to 'normal' removes extra spacing when two spaces are next to each other when set on 'pre' element. - white-space-processing-051 (ahem)
-
White-space 'nowrap' on a 'pre' element
The 'white-space' property set to 'nowrap' does not remove extra spacing when two spaces are next to each other. - white-space-processing-052 (ahem)
-
White-space 'pre-wrap' on a 'pre' element
The 'white-space' property set to 'pre-wrap' does not remove extra spacing when two spaces are next to each other and introduces line breaking opportunities when set on a 'pre' element. - white-space-processing-053 (ahem)
-
White-space 'pre-line' on a 'pre' element
The 'white-space' property set to 'pre-line' does remove extra spacing when two spaces are next to each other and breaks at new lines when set on a 'pre' element. - white-space-processing-054 (ahem)
-
White space processing model with 'en quad' characters
An 'en quad' characters is not collapsed by the white space processing model. - white-space-processing-055 (ahem)
-
White space processing model with 'zero width no break space' character
A 'zero width no break space' character is not collapsed by the white space processing model. - white-space-processing-056 (ahem)
-
White space processing model with 'ideographic space' character
The 'ideographic space' character is not collapsed by the white space processing model. - white-space-processing-057 (ahem, may)
-
White-space 'pre-wrap' and tab at end of line
A tab at end of line may be removed when 'white-space' is set to 'pre-wrap'. - white-space-processing-058 (ahem, may)
-
White-space 'pre-wrap' and space at end of line before following inline element
A space at end of line may be removed when 'white-space' is set to 'pre-wrap'.