Skip to content

Commit 585c53b

Browse files
committed
[css-text-4] add multi-line for issue 672
1 parent 92218c9 commit 585c53b

File tree

1 file changed

+56
-29
lines changed

1 file changed

+56
-29
lines changed

css-text-4/Overview.bs

Lines changed: 56 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ Text Wrap Settings: the 'text-wrap' property</h3>
175175

176176
<pre class="propdef">
177177
Name: text-wrap
178-
Value: wrap | nowrap | balance
178+
Value: wrap | nowrap | balance | multi-line
179179
Initial: wrap
180180
Applies to: all elements
181181
Inherited: yes
@@ -196,6 +196,10 @@ Text Wrap Settings: the 'text-wrap' property</h3>
196196
for the WJ, ZW, and GL line-breaking classes
197197
in [[!UAX14]] must be honored.
198198

199+
The exact algorithm is UA-defined.
200+
The algorithm may consider multiple lines when making break decisions.
201+
The UA may bias for speed over best layout.
202+
199203
<dt><dfn>nowrap</dfn>
200204
<dd>
201205
Lines may not break; text that does not fit within the block container
@@ -217,14 +221,23 @@ Text Wrap Settings: the 'text-wrap' property</h3>
217221
is that which remains after placing floats and inline content,
218222
but before any adjustments due to text justification.
219223
Line boxes are balanced when the standard deviation
220-
from the average <a>inline-size</a> of the remaining space in eacn line box
224+
from the average <a>inline-size</a> of the remaining space in each line box
221225
is reduced over the block
222226
(including lines that end in a forced break).
223227

224228
The exact algorithm is UA-defined.
225229

226230
UAs may treat this value as ''text-wrap/wrap'' if there are more than ten lines to balance.
227231

232+
<dt><dfn>multi-line</dfn>
233+
<dd>
234+
Same as ''text-wrap/wrap'' for inline-level elements.
235+
Same as ''text-wrap/wrap'' for block-level elements,
236+
except as below.
237+
238+
The exact algorithm is UA-defined.
239+
The algorithm should consider multiple lines when making break decisions.
240+
The UA should bias for best layout over speed.
228241
</dl>
229242

230243
Regardless of the 'text-wrap' value,
@@ -251,6 +264,24 @@ Text Wrap Settings: the 'text-wrap' property</h3>
251264

252265
<!-- add a sample prioritization algorithm -->
253266

267+
Note: The ''text-wrap/wrap'' value is intended
268+
for speedy legacy line breaking,
269+
which has so far used first-fit/greedy algorithms
270+
that can often give sub-optimal results.
271+
UAs could experiment with better line breaking algorithms
272+
with this default value,
273+
but optimal results will probably take more time.
274+
The ''text-wrap/multi-line'' and ''text-wrap/balance'' values
275+
are intended as opt-in choices to take more time for better results.
276+
The ''text-wrap/balance'' value is intended for titles and captions,
277+
and the ''text-wrap/multi-line'' is intended for body text.
278+
279+
Note: Some line breaking algorithms can interact unexpectedly with editing.
280+
Changing upstream line breaks on user edits can be unsettling.
281+
As UAs experiment with better line breaking algorithms,
282+
we will likely need to add a property
283+
to constrain upstream changes while editing.
284+
254285
<h3 id="wrap-before">
255286
Inline breaks between boxes: the 'wrap-before'/'wrap-after' properties</h3>
256287

@@ -524,10 +555,9 @@ Hyphens: the 'hyphenate-character' property</h3>
524555
</pre>
525556
</div>
526557

527-
<p class="note">
528-
Both hyphens triggered by automatic hyphenation and
529-
hyphens triggered by soft hyphens are rendered according to
530-
'hyphenate-character'.
558+
Note: Both hyphens triggered by automatic hyphenation and
559+
hyphens triggered by soft hyphens are rendered according to
560+
'hyphenate-character'.
531561

532562
<h3 id="hyphenate-size-limits">
533563
Hyphenation Size Limit: the 'hyphenate-limit-zone' property</h3>
@@ -582,9 +612,9 @@ Hyphenation Character Limits: the 'hyphenate-limit-chars' property</h3>
582612
value means that the UA chooses a value that adapts to the current
583613
layout.
584614

585-
<p class="note">Unless the UA is able to calculate a better value, it
586-
is suggested that ''hyphenate-limit-chars/auto'' means 2 for before and after, and 5 for
587-
the word total.
615+
Note: Unless the UA is able to calculate a better value, it
616+
is suggested that ''hyphenate-limit-chars/auto'' means 2 for before and after, and 5 for
617+
the word total.
588618

589619
<div class="example">
590620
In the example below, the minimum size of a hyphenated word is
@@ -801,12 +831,10 @@ Character-based Alignment in a Table Column</h3>
801831
the cells' contents to either side of the axis).
802832
</ul>
803833

804-
<p class="note">
805-
Right alignment is used by default for character-based
806-
alignment because numbering systems are almost all left-to-right even
807-
in right-to-left writing systems, and the primary use case of
808-
character-based alignment is for numerical alignment.
809-
</p>
834+
Note: Right alignment is used by default for character-based
835+
alignment because numbering systems are almost all left-to-right even
836+
in right-to-left writing systems, and the primary use case of
837+
character-based alignment is for numerical alignment.
810838

811839
If the alignment character appears more than once in the text, the first
812840
instance is used for alignment. If the alignment character does not appear
@@ -1069,18 +1097,17 @@ Fullwidth Punctuation Collapsing</h4>
10691097
For such proportional glyphs, the given advance width is considered
10701098
simultaneously full-width and half-width: no space is added or removed.
10711099

1072-
<p class="note">
1073-
The advance width of a standard Han character
1074-
can be determined either from font metrics
1075-
such as the OpenType <code>ideo</code> and <code>idtp</code> baselines for the opposite writing mode,
1076-
or by taking the advance width of a Han character such as 水 U+6C34.
1077-
(The opposite writing mode must be used because some fonts are compressed
1078-
so that the characters are not square.)
1079-
More information on OpenType metrics can be found
1080-
<a href="http://www.microsoft.com/typography/otspec/baselinetags.htm#ideoembox">in the OpenType spec</a>.
1081-
Note that if 水 U+6C34, 卜 U+535C, and 一 U+4E00 do not all have the same advance width,
1082-
the font has proportional ideographs
1083-
and the fullwidth advance width cannot be reliably determined by measuring glyphs.
1100+
Note: The advance width of a standard Han character
1101+
can be determined either from font metrics
1102+
such as the OpenType <code>ideo</code> and <code>idtp</code> baselines for the opposite writing mode,
1103+
or by taking the advance width of a Han character such as 水 U+6C34.
1104+
(The opposite writing mode must be used because some fonts are compressed
1105+
so that the characters are not square.)
1106+
More information on OpenType metrics can be found
1107+
<a href="http://www.microsoft.com/typography/otspec/baselinetags.htm#ideoembox">in the OpenType spec</a>.
1108+
Note that if 水 U+6C34, 卜 U+535C, and 一 U+4E00 do not all have the same advance width,
1109+
the font has proportional ideographs
1110+
and the fullwidth advance width cannot be reliably determined by measuring glyphs.
10841111

10851112
Unless 'text-spacing' is set to ''space-adjacent'' or ''text-spacing/none''
10861113
(or the font has proportional fullwidth punctuation glyphs),
@@ -1321,9 +1348,9 @@ Japanese Paragraph-start Conventions in CSS</h4>
13211348
<h2 id="edge-effects">
13221349
Edge Effects</h2>
13231350

1324-
<p class="note">Add final level 3 content</p>
1351+
Note: Add final level 3 content
13251352

13261353
<h2 class="no-num" id="acknowledgements">
13271354
Acknowledgements</h2>
13281355

1329-
<p class="note">Add final level 3 list, with Randy Edmunds and Florian Rivoal added</p>
1356+
Note: Add final level 3 list, with Randy Edmunds and Florian Rivoal added

0 commit comments

Comments
 (0)