RE: Revising text wrapping, line breaking, and white space properties in CSS3 (CSS3 Text: 6 and 7)

Hi Fantasai,

Some more notes.  I've spent a fair deal of time (re-)familiarising myself with the issues, particularly wrt ideographic and south-east asian implications.  Before making any comments, I'd like to check I understand clearly what you propose for white space handling. See below:

[BTW: I think the spec would be much more readable by the average implementor and content author if the properties were introduced in a different order.

I think that one should start with white space handling, of which linefeed-treatment is a secondary part, then word wrapping, then the items that are secondary to that: ie. current line-break, word-break-cjk, word-break-inside, etc.  This follows more closely the order of the in which these things are likely to be applied/refined.]


> -----Original Message-----
> From: w3c-i18n-wg-request@w3.org 
> [mailto:w3c-i18n-wg-request@w3.org] On Behalf Of fantasai
> Sent: 04 October 2004 17:05
> To: w3c-css-wg@w3.org; www-style@w3.org; w3c-i18n-wg@w3.org
> Subject: Revising text wrapping, line breaking, and white 
> space properties in CSS3 (CSS3 Text: 6 and 7)
> 
> 
<snip/>

> =============================
> 
> CSS3 Text defines the following properties to affect white 
> space processing:
> 
> Property                  Origin     Controls
> --------                  ------     --------
> linefeed-treatment        XSL        how to transform line breaks
> white-space-treatment     XSL        whether to preserve 
> other white space
> all-space-treatment       XSL        whether to collapse 
> remaining white space
> 
<snip/>

> Proposed:
>    white-space-something: discard | preserve | [ collapse ||
>                                                 [ 
> auto-collapse-breaks |
>                                                   
> space-collapse-breaks |
>                                                   
> zero-width-collapse-breaks |
>                                                   discard-breaks |
>                                                   preserve-breaks ] ]
>    'collapse' implies 'auto-collapse-breaks'
>    '*-breaks' implies 'collapse'
>    examples:
>      /* Discard all white space, including breaks */
>       white-space-sth: discard;
>      /* Preserve all white space, including breaks
>         as in "white-space: pre" / "white-space: pre-wrap" */
>       white-space-sth: preserve;


>      /* Collapse consecutive white space into single space,
>         auto-collapsing breaks and surrounding white space based on
>         surrounding script context (-> space, zwsp, or discard)
>         as in "white-space: normal" / "white-space: nowrap" */

Consecutive white space not containing a line break: -> one space
Consecutive white space containing one or more line breaks: -> one space, zwsp, or nothing according to script context

>       white-space-sth: collapse;
>       white-space-sth: collapse auto-collapse-breaks;
>       white-space-sth: auto-collapse-breaks collapse;
>       white-space-sth: auto-cllapse-breaks;
>      /* Collapse consecutive white space into single space,
>         collapsing breaks and surrounding white space into 
> single space */

Consecutive white space not containing a line break: -> one space
Consecutive white space containing one or more line breaks: -> one space


>       white-space-sth: collapse space-collapse-breaks;
>       white-space-sth: space-collapse-breaks collapse;
>       white-space-sth: space-collapse-breaks;
>      /* Collapse consecutive white space into single space,
>         collapsing breaks and surrounding white space into 
> zero-width space */

Consecutive white space not containing a line break: -> one space
Consecutive white space containing one or more line breaks: -> zwsp

>       white-space-sth: collapse zero-width-collapse-breaks;
>       white-space-sth: zero-width-collapse-breaks collapse;
>       white-space-sth: zero-width-collapse-breaks;
>      /* Collapse consecutive white space into single space,
>         but discard collapse breaks and surrounding white space */

Consecutive white space not containing a line break: -> one space
Consecutive white space containing one or more line breaks: -> nothing

>       white-space-sth: collapse discard-breaks;
>       white-space-sth: discard-breaks collapse;
>       white-space-sth: discard-breaks;
>      /* Collapse consecutive white space into single space,
>         but discard collapse breaks and surrounding white space
>         as in "white-space: pre-lines" */

Consecutive white space not containing a line break: -> one space
Consecutive white space containing one or more line breaks: -> line-break(s)

>       white-space-sth: collapse preserve-breaks;
>       white-space-sth: preserve-breaks collapse;
>       white-space-sth: preserve-breaks;
> 
<snap/>

Let me know if this is correct understanding, and I'll send some other comments.

Cheers,
RI

Received on Tuesday, 12 October 2004 12:44:05 UTC