@@ -1402,198 +1402,6 @@ Text Processing</h3>
1402
1402
white-space-bidirectionality-001.xht
1403
1403
</wpt>
1404
1404
1405
- <h4 id="line-break-transform">
1406
- Segment Break Transformation Rules</h4>
1407
-
1408
- <p> When 'white-space' is ''pre'' , ''pre-wrap'' , ''break-spaces'' , or ''pre-line'' ,
1409
- <a>segment breaks</a> are not <a>collapsible</a>
1410
- and are instead transformed into a preserved line feed (U+000A).
1411
-
1412
- <wpt pathprefix="/css/CSS2/text/">
1413
- white-space-008.xht
1414
- white-space-processing-016.xht
1415
- white-space-processing-017.xht
1416
- white-space-processing-018.xht
1417
- </wpt>
1418
-
1419
- <p> For other values of 'white-space' , <a>segment breaks</a> are <a>collapsible</a> .
1420
- Any collapsible <a>segment break</a> immediately following another collapsible <a>segment break</a>
1421
- is removed.
1422
- Then any remaining <a>segment break</a> is
1423
- either transformed into a space (U+0020) or removed
1424
- depending on the context before and after the break:
1425
-
1426
- <wpt pathprefix="/css/vendor-imports/mozilla/mozilla-central-reftests/text3/">
1427
- segment-break-transformation-removable-2.html
1428
- segment-break-transformation-removable-4.html
1429
- </wpt>
1430
-
1431
- <ul>
1432
- <li> If the character immediately before or immediately after the [=segment break=]
1433
- is the zero-width space character (U+200B), then the break
1434
- is removed, leaving behind the zero-width space.
1435
-
1436
- <wpt>
1437
- white-space/seg-break-transformation-016.html
1438
- white-space/seg-break-transformation-017.html
1439
- white-space/seg-break-transformation-018.html
1440
- white-space/seg-break-transformation-019.html
1441
- </wpt>
1442
- <wpt pathprefix="/css/vendor-imports/mozilla/mozilla-central-reftests/text3/">
1443
- segment-break-transformation-removable-1.html
1444
- segment-break-transformation-removable-3.html
1445
- </wpt>
1446
- <li> Otherwise, if the <a>East Asian Width property</a> [[!UAX11]] of both
1447
- the character before and after the [=segment break=] is
1448
- <code> Fullwidth</code> , <code> Wide</code> , or <code> Halfwidth</code>
1449
- (not <code> Ambiguous</code> ),
1450
- and neither side is Hangul,
1451
- then the [=segment break=] is removed.
1452
-
1453
- <wpt>
1454
- white-space/seg-break-transformation-001.html
1455
- white-space/seg-break-transformation-002.html
1456
- white-space/seg-break-transformation-003.html
1457
- white-space/seg-break-transformation-004.html
1458
- white-space/seg-break-transformation-005.html
1459
- white-space/seg-break-transformation-006.html
1460
- white-space/seg-break-transformation-007.html
1461
- white-space/seg-break-transformation-008.html
1462
- white-space/seg-break-transformation-009.html
1463
- white-space/seg-break-transformation-010.html
1464
- white-space/seg-break-transformation-011.html
1465
- white-space/seg-break-transformation-012.html
1466
- white-space/seg-break-transformation-014.html
1467
- white-space/seg-break-transformation-015.html
1468
- </wpt>
1469
- <wpt pathprefix="/css/vendor-imports/mozilla/mozilla-central-reftests/text3/">
1470
- segment-break-transformation-rules-001.html
1471
- segment-break-transformation-rules-002.html
1472
- segment-break-transformation-rules-003.html
1473
- segment-break-transformation-rules-004.html
1474
- segment-break-transformation-rules-005.html
1475
- segment-break-transformation-rules-006.html
1476
- segment-break-transformation-rules-007.html
1477
- segment-break-transformation-rules-008.html
1478
- segment-break-transformation-rules-009.html
1479
- segment-break-transformation-rules-010.html
1480
- segment-break-transformation-rules-011.html
1481
- segment-break-transformation-rules-012.html
1482
- segment-break-transformation-rules-013.html
1483
- segment-break-transformation-rules-014.html
1484
- segment-break-transformation-rules-015.html
1485
- segment-break-transformation-rules-016.html
1486
- segment-break-transformation-rules-017.html
1487
- segment-break-transformation-rules-018.html
1488
- segment-break-transformation-rules-019.html
1489
- segment-break-transformation-rules-020.html
1490
- segment-break-transformation-rules-021.html
1491
- segment-break-transformation-rules-022.html
1492
- segment-break-transformation-rules-023.html
1493
- segment-break-transformation-rules-024.html
1494
- segment-break-transformation-rules-025.html
1495
- segment-break-transformation-rules-026.html
1496
- segment-break-transformation-rules-027.html
1497
- segment-break-transformation-rules-028.html
1498
- segment-break-transformation-rules-029.html
1499
- segment-break-transformation-rules-030.html
1500
- segment-break-transformation-rules-031.html
1501
- segment-break-transformation-rules-032.html
1502
- segment-break-transformation-rules-033.html
1503
- segment-break-transformation-rules-034.html
1504
- segment-break-transformation-rules-035.html
1505
- segment-break-transformation-rules-036.html
1506
- segment-break-transformation-rules-037.html
1507
- segment-break-transformation-rules-038.html
1508
- segment-break-transformation-rules-039.html
1509
- segment-break-transformation-rules-040.html
1510
- segment-break-transformation-rules-041.html
1511
- segment-break-transformation-rules-042.html
1512
- segment-break-transformation-rules-043.html
1513
- segment-break-transformation-rules-044.html
1514
- segment-break-transformation-rules-045.html
1515
- segment-break-transformation-rules-046.html
1516
- segment-break-transformation-rules-047.html
1517
- segment-break-transformation-rules-048.html
1518
- segment-break-transformation-rules-049.html
1519
- </wpt>
1520
- <li> Otherwise, if the <a>writing system</a> of the <a>segment break</a>
1521
- is <a for=writing-system>Chinese</a> , <a for=writing-system>Japanese</a> , or Yi,
1522
- and the character before or after the [=segment break=]
1523
- is punctuation or a symbol (Unicode <a>general category</a> P* or S*)
1524
- and has an <a>East Asian Width property</a> of <code> Ambiguous</code> ,
1525
- and the character on the other side of the [=segment break=] is
1526
- <code> Fullwidth</code> , <code> Wide</code> , or <code> Halfwidth</code> ,
1527
- and not Hangul,
1528
- then the [=segment break=] is removed.
1529
-
1530
- <wpt>
1531
- writing-system/writing-system-segment-break-001.html
1532
- </wpt>
1533
- <li> Otherwise, the [=segment break=] is converted to a space (U+0020).
1534
- </ul>
1535
-
1536
- <p>
1537
- For this purpose,
1538
- Emoji (Unicode property <code> Emoji</code> )
1539
- with an <a>East Asian Width property</a> of
1540
- <code> Wide</code> or <code> Neutral</code>
1541
- are treated as having an <a>East Asian Width property</a> of
1542
- <code> Ambiguous</code> .
1543
-
1544
- <p class="note"> Note: The white space processing rules have already
1545
- removed any [=tabs=] and [=spaces=] after the [=segment break=] before these checks
1546
- take place.</p>
1547
-
1548
- <div class="example">
1549
- The purpose of the segment break transformation rules
1550
- (and white space collapsing in general)
1551
- is to “unbreak” text that has been
1552
- <a href="#white-space-processing">broken into segments</a>
1553
- to make the document source code easier to work with.
1554
- In languages that use word separators, such as English and Korean,
1555
- “unbreaking” a line requires joining the two lines with a [=space=] .
1556
-
1557
- <figure>
1558
- <pre>
1559
- Here is an English paragraph
1560
- that is broken into multiple lines
1561
- in the source code so that it can
1562
- more easily read in a text editor.
1563
- </pre>
1564
- <p> Here is an English paragraph that is broken into multiple lines in the source code so that it can be more easily read in a text editor.</p>
1565
- <figcaption>
1566
- Eliminating a line break in English requires maintaining a [=space=] in its place.
1567
- </figcaption>
1568
- </figure>
1569
-
1570
- In languages that have no word separators, such as Chinese,
1571
- “unbreaking” a line requires joining the two lines with no intervening space.
1572
-
1573
- <figure>
1574
- <pre>
1575
- 这个段落是呢么长,
1576
- 在一行写不行。最好
1577
- 用三行写。
1578
- </pre>
1579
- <p> 这个段落是呢么长,在一行不行。最好用三行写。</p>
1580
- <figcaption>
1581
- Eliminating a line break in Chinese requires eliminating any intervening [=white space=] .
1582
- </figcaption>
1583
- </figure>
1584
-
1585
- The segment break transformation rules thus use adjacent context
1586
- to either transform the segment break into a space
1587
- or eliminate it entirely.
1588
- </div>
1589
-
1590
- <p class="feedback issue"> Comments on how well these rules would work in practice would
1591
- be very much appreciated, particularly from people who work with
1592
- Thai and similar scripts.
1593
- Note that browser implementations do not currently follow these rules consistently
1594
- (although IE does in some cases transform the break,
1595
- and Firefox follows the first two bullet points).</p>
1596
-
1597
1405
<h4 id="white-space-phase-2">Phase II: Trimming and Positioning</h4>
1598
1406
1599
1407
<p> Then, the entire block is rendered.
@@ -1870,6 +1678,199 @@ Text Processing</h3>
1870
1678
when measuring the line’s contents for fit.
1871
1679
</div>
1872
1680
1681
+
1682
+ <h4 id="line-break-transform">
1683
+ Segment Break Transformation Rules</h4>
1684
+
1685
+ <p> When 'white-space' is ''pre'' , ''pre-wrap'' , ''break-spaces'' , or ''pre-line'' ,
1686
+ <a>segment breaks</a> are not <a>collapsible</a>
1687
+ and are instead transformed into a preserved line feed (U+000A).
1688
+
1689
+ <wpt pathprefix="/css/CSS2/text/">
1690
+ white-space-008.xht
1691
+ white-space-processing-016.xht
1692
+ white-space-processing-017.xht
1693
+ white-space-processing-018.xht
1694
+ </wpt>
1695
+
1696
+ <p> For other values of 'white-space' , <a>segment breaks</a> are <a>collapsible</a> .
1697
+ Any collapsible <a>segment break</a> immediately following another collapsible <a>segment break</a>
1698
+ is removed.
1699
+ Then any remaining <a>segment break</a> is
1700
+ either transformed into a space (U+0020) or removed
1701
+ depending on the context before and after the break:
1702
+
1703
+ <wpt pathprefix="/css/vendor-imports/mozilla/mozilla-central-reftests/text3/">
1704
+ segment-break-transformation-removable-2.html
1705
+ segment-break-transformation-removable-4.html
1706
+ </wpt>
1707
+
1708
+ <ul>
1709
+ <li> If the character immediately before or immediately after the [=segment break=]
1710
+ is the zero-width space character (U+200B), then the break
1711
+ is removed, leaving behind the zero-width space.
1712
+
1713
+ <wpt>
1714
+ white-space/seg-break-transformation-016.html
1715
+ white-space/seg-break-transformation-017.html
1716
+ white-space/seg-break-transformation-018.html
1717
+ white-space/seg-break-transformation-019.html
1718
+ </wpt>
1719
+ <wpt pathprefix="/css/vendor-imports/mozilla/mozilla-central-reftests/text3/">
1720
+ segment-break-transformation-removable-1.html
1721
+ segment-break-transformation-removable-3.html
1722
+ </wpt>
1723
+ <li> Otherwise, if the <a>East Asian Width property</a> [[!UAX11]] of both
1724
+ the character before and after the [=segment break=] is
1725
+ <code> Fullwidth</code> , <code> Wide</code> , or <code> Halfwidth</code>
1726
+ (not <code> Ambiguous</code> ),
1727
+ and neither side is Hangul,
1728
+ then the [=segment break=] is removed.
1729
+
1730
+ <wpt>
1731
+ white-space/seg-break-transformation-001.html
1732
+ white-space/seg-break-transformation-002.html
1733
+ white-space/seg-break-transformation-003.html
1734
+ white-space/seg-break-transformation-004.html
1735
+ white-space/seg-break-transformation-005.html
1736
+ white-space/seg-break-transformation-006.html
1737
+ white-space/seg-break-transformation-007.html
1738
+ white-space/seg-break-transformation-008.html
1739
+ white-space/seg-break-transformation-009.html
1740
+ white-space/seg-break-transformation-010.html
1741
+ white-space/seg-break-transformation-011.html
1742
+ white-space/seg-break-transformation-012.html
1743
+ white-space/seg-break-transformation-014.html
1744
+ white-space/seg-break-transformation-015.html
1745
+ </wpt>
1746
+ <wpt pathprefix="/css/vendor-imports/mozilla/mozilla-central-reftests/text3/">
1747
+ segment-break-transformation-rules-001.html
1748
+ segment-break-transformation-rules-002.html
1749
+ segment-break-transformation-rules-003.html
1750
+ segment-break-transformation-rules-004.html
1751
+ segment-break-transformation-rules-005.html
1752
+ segment-break-transformation-rules-006.html
1753
+ segment-break-transformation-rules-007.html
1754
+ segment-break-transformation-rules-008.html
1755
+ segment-break-transformation-rules-009.html
1756
+ segment-break-transformation-rules-010.html
1757
+ segment-break-transformation-rules-011.html
1758
+ segment-break-transformation-rules-012.html
1759
+ segment-break-transformation-rules-013.html
1760
+ segment-break-transformation-rules-014.html
1761
+ segment-break-transformation-rules-015.html
1762
+ segment-break-transformation-rules-016.html
1763
+ segment-break-transformation-rules-017.html
1764
+ segment-break-transformation-rules-018.html
1765
+ segment-break-transformation-rules-019.html
1766
+ segment-break-transformation-rules-020.html
1767
+ segment-break-transformation-rules-021.html
1768
+ segment-break-transformation-rules-022.html
1769
+ segment-break-transformation-rules-023.html
1770
+ segment-break-transformation-rules-024.html
1771
+ segment-break-transformation-rules-025.html
1772
+ segment-break-transformation-rules-026.html
1773
+ segment-break-transformation-rules-027.html
1774
+ segment-break-transformation-rules-028.html
1775
+ segment-break-transformation-rules-029.html
1776
+ segment-break-transformation-rules-030.html
1777
+ segment-break-transformation-rules-031.html
1778
+ segment-break-transformation-rules-032.html
1779
+ segment-break-transformation-rules-033.html
1780
+ segment-break-transformation-rules-034.html
1781
+ segment-break-transformation-rules-035.html
1782
+ segment-break-transformation-rules-036.html
1783
+ segment-break-transformation-rules-037.html
1784
+ segment-break-transformation-rules-038.html
1785
+ segment-break-transformation-rules-039.html
1786
+ segment-break-transformation-rules-040.html
1787
+ segment-break-transformation-rules-041.html
1788
+ segment-break-transformation-rules-042.html
1789
+ segment-break-transformation-rules-043.html
1790
+ segment-break-transformation-rules-044.html
1791
+ segment-break-transformation-rules-045.html
1792
+ segment-break-transformation-rules-046.html
1793
+ segment-break-transformation-rules-047.html
1794
+ segment-break-transformation-rules-048.html
1795
+ segment-break-transformation-rules-049.html
1796
+ </wpt>
1797
+ <li> Otherwise, if the <a>writing system</a> of the <a>segment break</a>
1798
+ is <a for=writing-system>Chinese</a> , <a for=writing-system>Japanese</a> , or Yi,
1799
+ and the character before or after the [=segment break=]
1800
+ is punctuation or a symbol (Unicode <a>general category</a> P* or S*)
1801
+ and has an <a>East Asian Width property</a> of <code> Ambiguous</code> ,
1802
+ and the character on the other side of the [=segment break=] is
1803
+ <code> Fullwidth</code> , <code> Wide</code> , or <code> Halfwidth</code> ,
1804
+ and not Hangul,
1805
+ then the [=segment break=] is removed.
1806
+
1807
+ <wpt>
1808
+ writing-system/writing-system-segment-break-001.html
1809
+ </wpt>
1810
+ <li> Otherwise, the [=segment break=] is converted to a space (U+0020).
1811
+ </ul>
1812
+
1813
+ <p>
1814
+ For this purpose,
1815
+ Emoji (Unicode property <code> Emoji</code> )
1816
+ with an <a>East Asian Width property</a> of
1817
+ <code> Wide</code> or <code> Neutral</code>
1818
+ are treated as having an <a>East Asian Width property</a> of
1819
+ <code> Ambiguous</code> .
1820
+
1821
+ <p class="note"> Note: The white space processing rules have already
1822
+ removed any [=tabs=] and [=spaces=] after the [=segment break=] before these checks
1823
+ take place.</p>
1824
+
1825
+ <div class="example">
1826
+ The purpose of the segment break transformation rules
1827
+ (and white space collapsing in general)
1828
+ is to “unbreak” text that has been
1829
+ <a href="#white-space-processing">broken into segments</a>
1830
+ to make the document source code easier to work with.
1831
+ In languages that use word separators, such as English and Korean,
1832
+ “unbreaking” a line requires joining the two lines with a [=space=] .
1833
+
1834
+ <figure>
1835
+ <pre>
1836
+ Here is an English paragraph
1837
+ that is broken into multiple lines
1838
+ in the source code so that it can
1839
+ more easily read in a text editor.
1840
+ </pre>
1841
+ <p> Here is an English paragraph that is broken into multiple lines in the source code so that it can be more easily read in a text editor.</p>
1842
+ <figcaption>
1843
+ Eliminating a line break in English requires maintaining a [=space=] in its place.
1844
+ </figcaption>
1845
+ </figure>
1846
+
1847
+ In languages that have no word separators, such as Chinese,
1848
+ “unbreaking” a line requires joining the two lines with no intervening space.
1849
+
1850
+ <figure>
1851
+ <pre>
1852
+ 这个段落是呢么长,
1853
+ 在一行写不行。最好
1854
+ 用三行写。
1855
+ </pre>
1856
+ <p> 这个段落是呢么长,在一行不行。最好用三行写。</p>
1857
+ <figcaption>
1858
+ Eliminating a line break in Chinese requires eliminating any intervening [=white space=] .
1859
+ </figcaption>
1860
+ </figure>
1861
+
1862
+ The segment break transformation rules thus use adjacent context
1863
+ to either transform the segment break into a space
1864
+ or eliminate it entirely.
1865
+ </div>
1866
+
1867
+ <p class="feedback issue"> Comments on how well these rules would work in practice would
1868
+ be very much appreciated, particularly from people who work with
1869
+ Thai and similar scripts.
1870
+ Note that browser implementations do not currently follow these rules consistently
1871
+ (although IE does in some cases transform the break,
1872
+ and Firefox follows the first two bullet points).</p>
1873
+
1873
1874
<h3 id="tab-size-property" caniuse="css3-tabsize" oldids="tab-size">
1874
1875
Tab Character Size: the 'tab-size' property</h3>
1875
1876
0 commit comments