index.html 69.1 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

<html lang=en>
 <head profile="http://www.w3.org/2006/03/hcard"><meta
  content="text/html; charset=utf-8" http-equiv=Content-Type>

  <title>CSS Exclusions and Shapes Module Level 3</title>
  <link href=default.css rel=stylesheet type="text/css">

  <style type="text/css">
  
  /* Alternate stylesheet fonts are here because in some browsers (Opera 11.5) */
  /* The fonts are not applied if only loaded from the alternate stylesheet    */
  
  /* License font the following two fonts: fonts/Droid-Serif-fontfacekit/Google Android License.txt */
  @import url(fonts/Droid-Serif-fontfacekit/stylesheet.css);
  @import url(fonts/Droid-Sans-Mono-fontfacekit/stylesheet.css);

    .singleImgExample {
    	display: block;
    	margin: auto;
    }
    
    .example-table {
    	table-layout: fixed; 
    	width: 100%; 
    }
    
    .example-table tr td img {
    	width: 90%;
    }
    
    a.toggle {
        position: fixed;
        top: 0.5em;
        right: 0.5em;
    	font-size: smaller;
    	color: gray;
    	opacity: 0.2;
    }

    a.toggle:hover {
        opacity: 1;
        color: #46A4E9;
    }
    
    .issue-marker a {
         background: #c00;
         color: white;
         font-weight: bold;
         padding: 0.5em;
     }
  </style>
  <link href="http://www.w3.org/StyleSheets/TR/W3C-WD.css" rel=stylesheet
  type="text/css">
  <link href=alternate-spec-style.css id=st rel="alternate stylesheet"
  title="alternate spec styles" type="text/css">

 <body>
  <div class=head id=div-head> <!--begin-logo-->
   <p><a href="http://www.w3.org/"><img alt=W3C height=48
    src="http://www.w3.org/Icons/w3c_home" width=72></a> <!--end-logo-->

   <h1 id=css-exclusions-module>CSS Exclusions and Shapes Module Level 3</h1>

   <h2 class="no-num no-toc" id=longstatus-date>W3C Working Draft 13 December
    2011</h2>

   <dl>
    <dt>This version:

    <dd><a
     href="http://www.w3.org/TR/2011/WD-css3-exclusions-20111213/">http://www.w3.org/TR/2011/WD-css3-exclusions-20111213/</a>

    <dt>Latest version:

    <dd><a
     href="http://www.w3.org/TR/css3-exclusions/">http://www.w3.org/TR/css3-exclusions/</a>

    <dt>Previous version:

    <dd>None

    <dt>Editors:

    <dd class=vcard><span class=fn>Vincent Hardy</span>, <span
     class=org>Adobe Systems, Inc.</span>, <span
     class=email>vhardy@adobe.com</span>

    <dd class=vcard><span class=fn>Rossen Atanassov</span>, <span
     class=org>Microsoft Corporation</span>, <span
     class=email>ratan@microsoft.com</span>

    <dt>Issues List

    <dd><a
     href="http://wiki.csswg.org/ideas/css3-exclusions">http://wiki.csswg.org/ideas/css3-exclusions</a>
   </dl>
   <!--begin-copyright-->
   <p class=copyright><a
    href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright"
    rel=license>Copyright</a> &copy; 2011 <a
    href="http://www.w3.org/"><acronym
    title="World Wide Web Consortium">W3C</acronym></a><sup>&reg;</sup> (<a
    href="http://www.csail.mit.edu/"><acronym
    title="Massachusetts Institute of Technology">MIT</acronym></a>, <a
    href="http://www.ercim.eu/"><acronym
    title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>,
    <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a
    href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
    <a
    href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>
    and <a
    href="http://www.w3.org/Consortium/Legal/copyright-documents">document
    use</a> rules apply.</p>
   <!--end-copyright-->
   <hr title="Separator for header">
  </div>

  <h2 class="no-num no-toc" id=abstract>Abstract</h2>

  <p> CSS exclusions define arbitrary areas around which inline content can
   flow. Unlike CSS floats, which they extend, CSS exclusions can be
   positioned with any CSS positioning schemes.

  <p> CSS Shapes control the geometric shapes used for wrapping inline flow
   content outside or inside an element.

  <p> Combining CSS Exclusions and CSS Shapes allows sophisticated layouts,
   for example having content flow into and/or around circles or other,
   arbitrarily complex shapes.

  <h2 class="no-num no-toc" id=status>Status of this document</h2>
  <!--begin-status-->

  <p><em>This section describes the status of this document at the time of
   its publication. Other documents may supersede this document. A list of
   current W3C publications and the latest revision of this technical report
   can be found in the <a href="http://www.w3.org/TR/">W3C technical reports
   index at http://www.w3.org/TR/.</a></em>

  <p>Publication as a Working Draft does not imply endorsement by the W3C
   Membership. This is a draft document and may be updated, replaced or
   obsoleted by other documents at any time. It is inappropriate to cite this
   document as other than work in progress.

  <p>The (<a
   href="http://lists.w3.org/Archives/Public/www-style/">archived</a>) public
   mailing list <a href="mailto:www-style@w3.org">www-style@w3.org</a> (see
   <a href="http://www.w3.org/Mail/Request">instructions</a>) is preferred
   for discussion of this specification. When sending e-mail, please put the
   text &#8220;css3-exclusions&#8221; in the subject, preferably like this:
   &#8220;[<!---->css3-exclusions<!---->] <em>&hellip;summary of
   comment&hellip;</em>&#8221;

  <p>This document was produced by the <a
   href="http://www.w3.org/Style/CSS/members">CSS Working Group</a> (part of
   the <a href="http://www.w3.org/Style/">Style Activity</a>).

  <p>This document was produced by a group operating under the <a
   href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February
   2004 W3C Patent Policy</a>. W3C maintains a <a
   href="http://www.w3.org/2004/01/pp-impl/32061/status"
   rel=disclosure>public list of any patent disclosures</a> made in
   connection with the deliverables of the group; that page also includes
   instructions for disclosing a patent. An individual who has actual
   knowledge of a patent which the individual believes contains <a
   href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential
   Claim(s)</a> must disclose the information in accordance with <a
   href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section
   6 of the W3C Patent Policy</a>.</p>
  <!--end-status-->

  <p>This is the First Public Working Draft of the CSS Exclusions and Shapes
   Level 3 Module.

  <h2 class="no-num no-toc" id=contents>Table of contents</h2>
  <!--begin-toc-->

  <ul class=toc>
   <li><a href="#intro"><span class=secno>1. </span>Introduction</a>

   <li><a href="#definitions"><span class=secno>2. </span>Definitions</a>

   <li><a href="#exclusions"><span class=secno>3. </span>Exclusions</a>
    <ul class=toc>
     <li><a href="#declaring-exclusions"><span class=secno>3.1.
      </span>Declaring exclusions</a>
      <ul class=toc>
       <li><a href="#wrap-flow-property"><span class=secno>3.1.1. </span>The
        &lsquo;<code class=property>wrap-flow</code>&rsquo; property</a>
      </ul>

     <li><a href="#scope-and-effect-of-exclusions"><span class=secno>3.2.
      </span>Scope and Effect of Exclusions</a>
      <ul class=toc>
       <li><a href="#wrap-margin-property"><span class=secno>3.2.1.
        </span>The &lsquo;<code class=property>wrap-margin</code>&rsquo;
        Property</a>

       <li><a href="#wrap-padding-property"><span class=secno>3.2.2.
        </span>The &lsquo;<code class=property>wrap-padding</code>&rsquo;
        Property</a>
      </ul>

     <li><a href="#propagation-of-exclusions"><span class=secno>3.3.
      </span>Propagation of Exclusions</a>
      <ul class=toc>
       <li><a href="#wrap-through-property"><span class=secno>3.3.1.
        </span>The &lsquo;<code class=property>wrap-through</code>&rsquo;
        Property</a>

       <li><a href="#wrap-shorthand-property"><span class=secno>3.3.2.
        </span>The &lsquo;<code class=property>wrap</code>&rsquo; Shorthand
        Property</a>
      </ul>

     <li><a href="#exclusions-order"><span class=secno>3.4. </span>Exclusions
      order</a>

     <li><a href="#exclusions-implementation-note"><span class=secno>3.5.
      </span>Exclusions implementation note</a>
    </ul>

   <li><a href="#shapes"><span class=secno>4. </span>Shapes</a>
    <ul class=toc>
     <li><a href="#shapes-from-svg-syntax"><span class=secno>4.1.
      </span>Shapes from SVG Syntax</a>
      <ul class=toc>
       <li><a href="#supported-svg-shapes"><span class=secno>4.1.1.
        </span>Supported SVG Shapes</a>

       <li><a href="#referencing-svg-shapes"><span class=secno>4.1.2.
        </span>Referencing SVG shapes</a>
      </ul>

     <li><a href="#shapes-from-image"><span class=secno>4.2. </span>Shapes
      from Image</a>

     <li><a href="#declaring-shapes"><span class=secno>4.3. </span>Declaring
      Shapes</a>
      <ul class=toc>
       <li><a href="#shape-outside-property"><span class=secno>4.3.1.
        </span>The &lsquo;<code class=property>shape-outside</code>&rsquo;
        Property</a>

       <li><a href="#shape-inside-property"><span class=secno>4.3.2.
        </span>The &lsquo;<code class=property>shape-inside</code>&rsquo;
        Property</a>

       <li><a href="#shape-image-threshold-property"><span class=secno>4.3.3.
        </span>The &lsquo;<code
        class=property>shape-image-threshold</code>&rsquo; Property</a>
      </ul>
    </ul>

   <li><a href="#conformance"><span class=secno>5. </span>Conformance</a>
    <ul class=toc>
     <li><a href="#conventions"><span class=secno>5.1. </span>Document
      Conventions</a>

     <li><a href="#conformance-classes"><span class=secno>5.2.
      </span>Conformance Classes</a>

     <li><a href="#partial"><span class=secno>5.3. </span> Partial
      Implementations</a>

     <li><a href="#experimental"><span class=secno>5.4. </span> Experimental
      Implementations</a>

     <li><a href="#testing"><span class=secno>5.5. </span> Non-Experimental
      Implementations</a>

     <li><a href="#cr-exit-criteria"><span class=secno>5.6. </span> CR Exit
      Criteria</a>
    </ul>

   <li class=no-num><a href="#acknowledgments">Acknowledgments</a>

   <li class=no-num><a href="#references">References</a>
    <ul class=toc>
     <li class=no-num><a href="#normative-references">Normative
      references</a>

     <li class=no-num><a href="#other-references">Other references</a>
    </ul>

   <li class=no-num><a href="#index">Index</a>

   <li class=no-num><a href="#property-index">Property index</a>
  </ul>
  <!--end-toc-->

  <h2 id=intro><span class=secno>1. </span>Introduction</h2>

  <p><em>This section is not normative.</em>

  <p> The exclusions section of this specification defines features that
   allow inline flow content to wrap around outside the <a
   href="#exclusion-area">exclusion area</a> of elements.

  <p> The shapes section of the specification defines properties to control
   the geometry of an element's <a href="#exclusion-area">exclusion area</a>
   as well as the geometry used for wrapping an element's inline flow
   content.

  <h2 id=definitions><span class=secno>2. </span>Definitions</h2>

  <p><dfn id=exclusion-element>Exclusion element</dfn>

  <p> An element that defines an <a href="#exclusion-area">exclusion area</a>
   for other elements. The &lsquo;<a href="#wrap-flow"><code
   class=property>wrap-flow</code></a>&rsquo; property is used to make an
   element an exclusion element. An exclusion element contributes its <a
   href="#exclusion-area">exclusion area</a> to its <a
   href="http://www.w3.org/TR/CSS2/visudet.html#containing-block-details">
   containing block's</a> <a href="#wrapping-context">wrapping context</a>

  <p><dfn id=exclusion-area>Exclusion area</dfn>

  <div class=issue-marker><a
   href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=15087">Bug-15087</a></div>

  <p> The area used for excluding inline flow content around an exclusion
   element. The exclusion area is equivalent to the <a
   href="http://www.w3.org/TR/CSS2/box.html#box-dimensions"> border box</a>
   for elements with &lsquo;<code class=property>float</code>&rsquo; property
   computed to &lsquo;<code class=property>none</code>&rsquo; and the <a
   href="http://www.w3.org/TR/CSS2/box.html#box-dimensions">margin box</a>
   for elements with &lsquo;<code class=property>float</code>&rsquo; property
   computed to a value other than &lsquo;<code
   class=property>none</code>&rsquo;. This specification's &lsquo;<a
   href="#shape-outside"><code class=property>shape-outside</code></a>&rsquo;
   property can be used to define arbitrary, non-rectangular exclusion areas.
   

  <p><dfn id=wrapping-context>Wrapping context</dfn>

  <div class=issue-marker><a
   href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=15086">Bug-15086</a></div>

  <p> The wrapping context of an element is a collection of &lsquo;<code
   class=css>exclusion areas</code>&rsquo;. The wrapping context is used to
   wrap around inline flow content during layout. An element will wrap its
   inline flow content in the area that corresponds to the subtraction of its
   wrapping context from its own <a href="#content-area">content area</a>.

  <p> An element inherits its <a
   href="http://www.w3.org/TR/CSS2/visudet.html#containing-block-details">containing
   block's</a> wrapping context unless it specifically resets it using the
   &lsquo;<a href="#wrap-through"><code
   class=property>wrap-through</code></a>&rsquo; property.

  <p><dfn id=content-area>Content area</dfn>

  <p> The area used for layout of the inline flow content of an element. By
   default the area is equivalent to the <a
   href="http://www.w3.org/TR/CSS2/box.html#box-dimensions">content box</a>.
   This specification's &lsquo;<a href="#shape-inside"><code
   class=property>shape-inside</code></a>&rsquo; property can define
   arbitrary, non-rectangular content areas.

  <p><dfn id=outside-and-inside title=outside-inside>Outside and inside</dfn>
   

  <p> In this specification, &lsquo;<code
   class=property>outside</code>&rsquo; refers to DOM content that is not a
   descendant of an element while &lsquo;<code
   class=property>inside</code>&rsquo; refers to the element's descendants.

  <h2 id=exclusions><span class=secno>3. </span>Exclusions</h2>

  <p> Exclusion elements define exclusion areas that contribute to their
   containing block's wrapping context. As a consequence, exclusions impact
   the layout of their containing block's descendants.

  <p>

  <p> Elements layout their inline content in their <a
   href="#content-area">content area</a> and avoid the areas in their
   associated wrapping context. If the element is itself an exclusion, it
   does not wrap around its own exclusion shape and the impact of other
   exclusions on other exclusions is controlled by the &lsquo;<code
   class=property>z-index</code>&rsquo; property as explained in the <a
   href="#exclusions-order">exclusions order</a> section.

  <p> The shape properties can is used to change the shape of exclusions.

  <h3 id=declaring-exclusions><span class=secno>3.1. </span>Declaring
   exclusions</h3>

  <p> An element becomes an exclusion when its &lsquo;<a
   href="#wrap-flow"><code class=property>wrap-flow</code></a>&rsquo;
   property has a computed value other than &lsquo;<code
   class=property>auto</code>&rsquo;.

  <h4 id=wrap-flow-property><span class=secno>3.1.1. </span>The &lsquo;<a
   href="#wrap-flow"><code class=property>wrap-flow</code></a>&rsquo;
   property</h4>

  <table class=propdef>
   <tbody>
    <tr>
     <th>Name:

     <td><dfn id=wrap-flow title="'wrap-flow'">wrap-flow</dfn>

    <tr>
     <th>Value:

     <td><var>auto</var> | <var>both</var> | <var>start</var> |
      <var>end</var> | <var>maximum</var> | <var>clear</var>

    <tr>
     <th>Initial:

     <td>auto

    <tr>
     <th>Applies to:

     <td>block-level elements

    <tr>
     <th>Inherited:

     <td>no

    <tr>
     <th>Percentages:

     <td>N/A

    <tr>
     <th>Media:

     <td>visual

    <tr>
     <th>Computed&nbsp;value:

     <td>as specified, except for floats all values compute to &lsquo;<code
      class=property>auto</code>&rsquo;
  </table>

  <p>The values of this property have the following meanings:

  <dl>
   <dt><dfn id=auto title="'wrap-flow'!!'auto'">auto</dfn>

   <dd> For floats an exclusion is created, for all other elements an
    exclusion is not created.

   <dt><dfn id=both title="'wrap-flow'!!'both'">both</dfn>

   <dd> Inline flow content can flow on all sides of the exclusion.

   <dt><dfn id=start title="'wrap-flow'!!'start'">start</dfn>

   <dd> Inline flow content can wrap on the start edge of the exclusion area
    but must leave the area to end edge of the exclusion area empty.

   <dt><dfn id=end title="'wrap-flow'!!'end'">end</dfn>

   <dd> Inline flow content can wrap on the end side of the exclusion area
    but must leave the area to the start edge of the exclusion area empty.

   <dt><dfn id=maximum title="'wrap-flow'!!'maximum'">maximum</dfn>

   <dd> Inline flow content can wrap on the side of the exclusion with the
    largest available space for the given line, and must leave the other side
    of the exclusion empty.

   <dt><dfn id=clear title="'wrap-flow'!!'clear'">clear</dfn>

   <dd> Inline flow content can only wrap on top and bottom of the exclusion
    and must leave the areas to the start and end edges of the exclusion box
    empty.
  </dl>

  <p> Setting the &lsquo;<a href="#wrap-flow"><code
   class=property>wrap-flow</code></a>&rsquo; property to &lsquo;<code
   class=property>both</code>&rsquo;, &lsquo;<code
   class=property>start</code>&rsquo;, &lsquo;<code
   class=property>end</code>&rsquo;, &lsquo;<code
   class=property>maximum</code>&rsquo; or &lsquo;<code
   class=property>clear</code>&rsquo; on an element makes that element an
   <span>exclusion element. It's <span>exclusion shape</span> is contributed
   to its containing block's wrapping context, causing the containing block's
   descendants to wrap around its exclusion area. </span>

  <p> The initial value for this property is &lsquo;<code
   class=property>auto</code>&rsquo;.

  <p> When the property's computed value is &lsquo;<code
   class=property>auto</code>&rsquo;, the element does not become an <a
   href="#exclusion-element">exclusion element</a> unless its &lsquo;<code
   class=property>float</code>&rsquo; property computed value is not
   &lsquo;<code class=property>none</code>&rsquo;. In that case, the element
   contributes its &lsquo;<code class=css>border box</code>&rsquo; to its
   containing block's <a href="#wrapping-context">wrapping context</a> and
   content flows around it according to the &lsquo;<code
   class=property>clear</code>&rsquo; property.

  <p> The element will be considered as an exclusion for all inline flow
   content descendants of the exclusions' containing block.

  <div class=figure> <img
   alt="General illustration showing how exclusions combine"
   src="images/exclusions-illustration.png" width="70%">
   <p class=caption>Combining exclusions</p>
  </div>

  <div>
   <p>The above figure illustrates how exclusions combine. The red box
    represents an element's content box. The A, B, C and D darker gray boxes
    represent exclusions in the element's wrapping context. A, B, C and D
    have their respective &lsquo;<a href="#wrap-flow"><code
    class=property>wrap-flow</code></a>&rsquo; set to &lsquo;<code
    class=property>both</code>&rsquo;, &lsquo;<code
    class=property>start</code>&rsquo;, &lsquo;<code
    class=property>end</code>&rsquo; and &lsquo;<code
    class=property>clear</code>&rsquo; respectively. The lighter gray areas
    show the additional areas that are excluded for inline layout as a result
    of the &lsquo;<a href="#wrap-flow"><code
    class=property>wrap-flow</code></a>&rsquo; value. For example, the area
    to the right of &lsquo;<code class=property>B</code>&rsquo; cannot be
    used for inline layout because the &lsquo;<a href="#wrap-flow"><code
    class=property>wrap-flow</code></a>&rsquo; for &lsquo;<code
    class=property>B</code>&rsquo; is &lsquo;<code
    class=property>start</code>&rsquo;.</p>

   <p>The background &lsquo;<code class=property>blue</code>&rsquo; area
    shows what areas are available for inline content layout. All areas
    represented with a light or dark shade of gray are not available for
    inline content layout.</p>
  </div>

  <div class=issue-marker><a
   href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=15088">Bug-15088</a></div>

  <div class=issue-marker><a
   href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=15084">Bug-15084</a></div>

  <div class=example>
   <p> The &lsquo;<a href="#wrap-flow"><code
    class=property>wrap-flow</code></a>&rsquo; property values applied to an
    absolutely positioned element.</p>
   <code class=html></code>
   <pre>
&lt;style type="text/css"&gt; 
    #exclusion {
    	position: absolute; 
    	background: lightblue; 
    	border: 3px solid blue; 
    } 
&lt;/style&gt; 

&lt;div style=”position: relative; border: 1px solid black;”&gt; 
    &lt;div id=”exclusion”&gt;Donec metus messa, mollis...&lt;/div&gt; 
    Lorem ipsum dolor sit amet... 
&lt;/div&gt;
</pre>

   <table class=example-table>
    <tbody>
     <tr>
      <td><code class=html>#exclusion{ wrap-flow: auto; }</code>

      <td><code class=html>#exclusion{ wrap-flow: both; }</code>

     <tr>
      <td><img alt="Example rendering for wrap-side: auto"
       src="images/exclusion_wrap_side_auto.png">

      <td><img alt="Example rendering for wrap-side: both"
       src="images/exclusion_wrap_side_both.png">

     <tr>
      <td><code class=html>#exclusion{ wrap-flow: start; }</code>

      <td><code class=html>#exclusion{ wrap-flow: end; }</code>

     <tr>
      <td><img alt="Example rendering for wrap-side: start"
       src="images/exclusion_wrap_side_left.png">

      <td><img alt="Example rendering for wrap-side: end"
       src="images/exclusion_wrap_side_right.png">

     <tr>
      <td><code class=html>#exclusion{ wrap-flow: maximum; }</code>

      <td><code class=html>#exclusion{ wrap-flow: maximum; }</code>

     <tr>
      <td><img alt="Example rendering for wrap-side: maximum"
       src="images/exclusion_wrap_side_maximum_L.png">

      <td><img alt="Example rendering for wrap-side: maximum"
       src="images/exclusion_wrap_side_maximum_R.png">

     <tr>
      <td><code class=html>#exclusion{ wrap-flow: clear; }</code>

      <td><code class=html>&nbsp;</code>

     <tr>
      <td><img alt="Example rendering for wrap-side: clear"
       src="images/exclusion_wrap_side_clear.png">

      <td>&nbsp;
   </table>
  </div>
  <!-- End section "wrap-flow Property" -->
  <!-- End section "Declaring Exclusions" -->

  <h3 id=scope-and-effect-of-exclusions><span class=secno>3.2. </span>Scope
   and Effect of Exclusions</h3>

  <p> An exclusion affects the inline flow content descended from the
   exclusion's containing blocks (defined in <a
   href="http://www.w3.org/TR/CSS2/visudet.html#containing-block-details">
   CSS 2.1 10.1</a>) and that of all descendant elements of the same
   containing block. All inline flow content inside the containing block of
   the exclusions is affected. To stop the effect of exclusions defined
   outside any element, the &lsquo;<a href="#wrap-through"><code
   class=property>wrap-through</code></a>&rsquo; property can be used (see
   definition of Propagation of Exclusions below).

  <h4 id=wrap-margin-property><span class=secno>3.2.1. </span>The &lsquo;<a
   href="#wrap-margin"><code class=property>wrap-margin</code></a>&rsquo;
   Property</h4>

  <p> The &lsquo;<a href="#wrap-margin"><code
   class=property>wrap-margin</code></a>&rsquo; property can be used to
   offset the inline flow content wrapping on the outside of exclusions.
   Offsets created by the &lsquo;<a href="#wrap-margin"><code
   class=property>wrap-margin</code></a>&rsquo; property are offset from the
   outside of the exclusion. This property takes on positive values only.

  <table class=propdef>
   <tbody>
    <tr>
     <th>Name:

     <td><dfn id=wrap-margin title="'wrap-margin'">wrap-margin</dfn>

    <tr>
     <th>Value:

     <td><var>&lt;length&gt;</var>

    <tr>
     <th>Initial:

     <td>0

    <tr>
     <th>Applies to:

     <td>block-level elements

    <tr>
     <th>Inherited:

     <td>no

    <tr>
     <th>Percentages:

     <td>N/A

    <tr>
     <th>Media:

     <td>visual

    <tr>
     <th>Computed&nbsp;value:

     <td>the absolute length
  </table>
  <!-- End secion "wrap-margin property" -->

  <h4 id=wrap-padding-property><span class=secno>3.2.2. </span>The &lsquo;<a
   href="#wrap-padding"><code class=property>wrap-padding</code></a>&rsquo;
   Property</h4>

  <p> The &lsquo;<a href="#wrap-padding"><code
   class=property>wrap-padding</code></a>&rsquo; property can be used to
   offset to the inline flow content wrapping on the inside of elements.
   Offsets created by the &lsquo;<a href="#wrap-padding"><code
   class=property>wrap-padding</code></a>&rsquo; property are offset from the
   <a href="#content-area">content area</a> of the element. This property
   takes on positive values only.

  <table class=propdef>
   <tbody>
    <tr>
     <th>Name:

     <td><dfn id=wrap-padding title="'wrap-padding'">wrap-padding</dfn>

    <tr>
     <th>Value:

     <td><var>&lt;length&gt;</var>

    <tr>
     <th>Initial:

     <td>0

    <tr>
     <th>Applies to:

     <td>block-level elements

    <tr>
     <th>Inherited:

     <td>no

    <tr>
     <th>Percentages:

     <td>N/A

    <tr>
     <th>Media:

     <td>visual

    <tr>
     <th>Computed&nbsp;value:

     <td>the absolute length
  </table>
  <!-- End section "wrap-padding property" -->

  <div class=note>Note that the &lsquo;<a href="#wrap-padding"><code
   class=property>wrap-padding</code></a>&rsquo; property affects layout of
   content inside the element it applies to while the &lsquo;<a
   href="#wrap-margin"><code class=property>wrap-margin</code></a>&rsquo;
   property affects layout of content outside the element.</div>
  <!-- End section "Scope and Effect of Exclusions" -->

  <h3 id=propagation-of-exclusions><span class=secno>3.3. </span>Propagation
   of Exclusions</h3>

  <p> By default, an element inherits its parent <a
   href="#wrapping-context">wrapping context</a>. In other words it is
   subject to the exclusions defined <a href="#outside-and-inside"
   title=outside-inside>outside the element. </a>

  <p>Setting the &lsquo;<a href="#wrap-through"><code
   class=property>wrap-through</code></a>&rsquo; property to &lsquo;<code
   class=property>none</code>&rsquo; prevents an element from inheriting its
   parent wrapping context. In other words, exclusions defined &lsquo;<code
   class=property>outside</code>&rsquo; the element, have not effect on the
   element's children layout.

  <div class=note> Exclusions defined by an element's descendants still
   contribute to their containing block's <a
   href="#wrapping-context">wrapping context</a>. If that containing block is
   a child of an element with &lsquo;<a href="#wrap-through"><code
   class=property>wrap-through</code></a>&rsquo; set to none, or the element
   itself, then exclusion still have an effect on the children of that
   containing block element.</div>

  <h4 id=wrap-through-property><span class=secno>3.3.1. </span>The &lsquo;<a
   href="#wrap-through"><code class=property>wrap-through</code></a>&rsquo;
   Property</h4>

  <div class=issue-marker><a
   href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=15085">Bug-15085</a></div>

  <table class=propdef>
   <tbody>
    <tr>
     <th>Name:

     <td><dfn id=wrap-through title="'wrap-through'">wrap-through</dfn>

    <tr>
     <th>Value:

     <td><a href="#wrap0"><var>wrap</var></a> | <var>none</var>

    <tr>
     <th>Initial:

     <td>wrap

    <tr>
     <th>Applies to:

     <td>block-level elements

    <tr>
     <th>Inherited:

     <td>no

    <tr>
     <th>Percentages:

     <td>N/A

    <tr>
     <th>Media:

     <td>visual

    <tr>
     <th>Computed&nbsp;value:

     <td>as specified
  </table>

  <p>The values of this property have the following meanings:

  <dl>
   <dt><dfn id=wrap title="'wrap-through'!!'wrap'">wrap</dfn>

   <dd> The element inherits its parent node's <a
    href="#wrapping-context">wrapping context</a>. Its descendant inline
    content wraps around exclusions defined <a href="#outside-and-inside"
    title=outside-inside>outside</a> the element.
  </dl>

  <dl>
   <dt><dfn id=none title="'wrap-through'!!'none'">none</dfn>

   <dd> The element does not inherit its parent node's <a
    href="#wrapping-context">wrapping context</a>. Its descendants are only
    subject to exclusion shapes defined <a href="#outside-and-inside"
    title=outside-inside>inside</a> the element.
  </dl>

  <div class=example>
   <p> Using the &lsquo;<a href="#wrap-through"><code
    class=property>wrap-through</code></a>&rsquo; property to control the
    effect of exclusions.</p>

   <pre><code class=html>
&lt;style type="text/css"&gt; 
    .exclusion  {
    	wrap-flow: both; 
    	position: absolute; 
    	background-color: rgba(220, 230, 242, 0.5); 
    } 
&lt;/style&gt; 

&lt;div style=”position: relative;”&gt; 
    &lt;div class=”exclusion”&gt;&lt;/div&gt; 
    &lt;div style=”wrap-through: wrap;”&gt; Lorem ipsum dolor sit amet...&lt;/div&gt; 
    &lt;div style=”wrap-through: none;”&gt; Lorem ipsum dolor sit amet...&lt;/div&gt; 
&lt;/div&gt;
</code></pre>
   <img alt="Example rendering of wrap-through: wrap | none"
   class=singleImgExample src="images/exclusion_wrap_through.png"
   style="max-width:40%"></div>
  <!-- End section "wrap-through property" -->

  <h4 id=wrap-shorthand-property><span class=secno>3.3.2. </span>The
   &lsquo;<a href="#wrap0"><code class=property>wrap</code></a>&rsquo;
   Shorthand Property</h4>

  <table class=propdef>
   <tbody>
    <tr>
     <th>Name:

     <td><dfn id=wrap0 title="'wrap'">wrap</dfn>

    <tr>
     <th>Value:

     <td><var>&lt;wrap-flow&gt;</var> || <var>&lt;wrap-margin&gt;</var> [ /
      <var>&lt;wrap-padding&gt;</var>]

    <tr>
     <th>Initial:

     <td>see individual properties

    <tr>
     <th>Applies to:

     <td>block-level elements

    <tr>
     <th>Inherited:

     <td>no

    <tr>
     <th>Percentages:

     <td>N/A

    <tr>
     <th>Media:

     <td>visual

    <tr>
     <th>Computed&nbsp;value:

     <td>see individual properties
  </table>

  <p> The &lsquo;<a href="#wrap0"><code class=property>wrap</code></a>&rsquo;
   property is a shorthand property for setting the exclusions properties at
   the same place in the style sheet.</p>
  <!-- End section "wrap shorthand property" -->
  <!-- End section "Propagation of Exclusions" -->

  <h3 id=exclusions-order><span class=secno>3.4. </span>Exclusions order</h3>

  <p> Exclusions follow the painting order (See <a href="#CSS21"
   rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a> Appendix E). Exclusions are
   applied in reverse to the document order in which they are defined. The
   last exclusion appears on top of all other exclusion, thus it affects the
   inline flow content of all other preceding exclusions or elements
   descendant of the same containing block. To change the ordering of
   exclusions with &lsquo;<code class=property>position</code>&rsquo;
   property computed to a value other than &lsquo;<code
   class=property>static</code>&rsquo;, &lsquo;<code
   class=property>z-index</code>&rsquo; can be used. Exclusions with
   &lsquo;<code class=property>position</code>&rsquo; property computed to
   &lsquo;<code class=property>static</code>&rsquo; are not affected by the
   &lsquo;<code class=property>z-index</code>&rsquo; property, thus follow
   the painting order.

  <div class=example>
   <p>Ordering of exclusions.</p>

   <pre><code class=html>
&lt;style type="text/css"&gt; 
    .exclusion  {
    	wrap-flow: both; 
    	position: absolute; 
    	width: 50%; 
    	height: 50%; 
    } 
&lt;/style&gt; 

&lt;div class=”exclusion” style=”top: 0px; left: 0px;”&gt; 
    Lorem ipsum dolor sit amet... 
&lt;/div&gt; 
&lt;div id="orderedExclusion" class=”exclusion” style=”top: 25%; left: 25%;”&gt; 
    Lorem ipsum dolor sit amet... 
&lt;/div&gt; 
&lt;div class=”exclusion” style=”top: 50%; left: 50%;”&gt; 
    Lorem ipsum dolor sit amet... 
&lt;/div&gt;
</code></pre>

   <table class=example-table>
    <tbody>
     <tr>
      <td style="width:50%"><code class=html>#orderedExclusion{ z-index:
       auto; }</code>

      <td style="width:50%"><code class=html>#orderedExclusion{ z-index: 1;
       }</code>

     <tr>
      <td><img alt="Example rendering of default exclusion ordering."
       class=singleImgExample src="images/exclusion_ordering.png">

      <td><img alt="Example rendering of default exclusion ordering."
       class=singleImgExample src="images/exclusion_ordering_z_order.png">
   </table>
  </div>
  <!-- End section "Order of Exclusions" -->

  <h3 id=exclusions-implementation-note><span class=secno>3.5.
   </span>Exclusions implementation note</h3>

  <div class=issue-marker><a
   href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=15083">Bug-15083</a></div>

  <p><em>This section is not normative.</em>

  <p> Exclusions can be specified on positioned elements and elements can be
   positioned from their <a
   href="http://www.w3.org/TR/CSS21/visudet.html#static-position">static
   position</a>. Since, the static position of such elements depends on the
   inline flow content affected by the exclusion itself; there is a circular
   dependency between the two layout tasks. To break this circular dependency
   a two-pass layout approach is recommended. The first layout pass computes
   the static positions of all auto-positioned exclusions by laying out all
   content besides exclusions. The second pass is layout of all elements
   including all exclusions. Exclusions that depend on their static position
   will use the position calculated during the first layout pass.

  <p class=note> Note, this may cause exclusions to overlap or be distant
   from their static position (compared to non-exclusions auto-positioned
   elements).

  <p> Similar dependency exists for exclusions whose size or position is
   specified in percentage and the containing block size is specified as
   &lsquo;<code class=property>auto</code>&rsquo;. In such cases the size or
   position of the exclusion is calculated based on the size of the
   containing block calculated in the first layout pass.

  <p> Exclusions can be positioned on all levels of nested elements. If
   layout is restarted on every level of nesting, the time to complete layout
   will be exponential. To avoid multiple layout passes, the restart of the
   second layout pass should be scoped to the top-most containing block of
   exclusions. Similarly, restarting layout for the entire document is not
   necessary unless there are exclusions whose containing block is the
   initial containing block.</p>
  <!-- End section "Processing Model of Exclusions" -->
  <!-- End section "Exclusions" -->

  <h2 id=shapes><span class=secno>4. </span>Shapes</h2>

  <div class=issue-marker> <a
   href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=15091">Bug-15091</a><br>
  </div>

  <p> Shapes define arbitrary geometric contours around which or into which
   inline flow content flows. There are two different types of shapes –
   &lsquo;<code class=property>outside</code>&rsquo; and &lsquo;<code
   class=property>inside</code>&rsquo;. The outside shape defines the <a
   href="#exclusion-area">exclusion area</a> for an <a
   href="#exclusion-element">exclusion element</a>. The inside shape defines
   an element's <span>content shape</span> and the element's inline content
   will flow within that shape.

  <p><dfn id=flow-container>Flow Container</dfn>

  <p> A flow container is an element with a &lsquo;<code
   class=property>display</code>&rsquo; value that is computed as
   &lsquo;<code class=property>block</code>&rsquo;, &lsquo;<code
   class=property>table-cell</code>&rsquo; or &lsquo;<code
   class=property>inline-block</code>&rsquo;.

  <p class=note> Note, while the boundaries used for wrapping inline flow
   content outside and inside an element can be defined using shapes, the
   actual box model does not change. If the element has specified margins,
   borders or paddings they will be computed and rendered according to the
   [[CSS3-Box]] module.

  <div class=example>
   <p>CSS &lsquo;<code class=property>shape</code>&rsquo; and CSS box model
    relation.</p>

   <pre><code class=html>
&lt;style type="text/css"&gt; 
    .exclusion  {
    	wrap-flow: both; 
    	position: absolute; 
    	shape-outside: circle(50%, 50%, 50%); 
    	border: 1px solid red; 
    } 
&lt;/style&gt; 

&lt;div style=”position: relative; border: 1px solid black;”&gt; 
    &lt;div class=”exclusion”&gt;&lt;/div&gt; 
    Lorem ipsum dolor sit amet... 
&lt;/div&gt;
</code></pre>
   <img alt="Example rendering of circle shape and box model."
   class=singleImgExample src="images/shapes_CSS2.1_MBP.png"
   style="max-width:40%"></div>

  <h3 id=shapes-from-svg-syntax><span class=secno>4.1. </span>Shapes from SVG
   Syntax</h3>

  <p> Shapes can be specified using <a
   href="http://www.w3.org/TR/SVG/shapes.html">SVG basic shapes</a>.

  <h4 id=supported-svg-shapes><span class=secno>4.1.1. </span>Supported SVG
   Shapes</h4>

  <p> The following SVG shapes are supported by the CSS shapes module.

  <dl>
   <dt>rectangle(x, y, width, height, [[rx], ry])

   <dd>
    <ul>
     <li><strong>x, y, width and height</strong> - define the bounding box of
      the rectangle

     <li><strong>rx</strong> - For rounded rectangles, the x-axis radius of
      the ellipse used to round off the corners of the rectangle

     <li><strong>ry</strong> - For rounded rectangles, the y-axis radius of
      the ellipse used to round off the corners of the rectangle
    </ul>

   <dt>circle(cx, cy, r)

   <dd>
    <ul>
     <li><strong>cx</strong> - The x-axis coordinate of the center of the
      circle

     <li><strong>cy</strong> - The y-axis coordinate of the center of the
      circle

     <li><strong>r</strong> - The radius of the circle
    </ul>

   <dt>ellipse(cx, cy, rx, ry)

   <dd>
    <ul>
     <li><strong>cx</strong> - The x-axis coordinate of the center of the
      ellipse

     <li><strong>cy</strong> - The y-axis coordinate of the center of the
      ellipse

     <li><strong>rx</strong> - The x-axis radius of the ellipse

     <li><strong>ry</strong> - The y-axis radius of the ellipse
    </ul>

   <dt>polygon([fillRule], x1, y1, x2, y2, x3, y3, … xn, yn)

   <dd>
    <ul>
     <li><strong>fillRule</strong> - The filling rule used to determine the
      interior of the polygon. See fill-rule property in SVG for details.
      Possible values are nonzero or evenodd. Default value when omitted is
      nonzero.

     <li><strong>xi</strong> - The x-axis coordinate of the i-th vertex of
      the polygon

     <li><strong>yi</strong> - The y-axis coordinate of the i-th vertex of
      the polygon
    </ul>

    <p> If the polygon is not closed the user-agent will automatically add a
     new vertex at the end.</p>
    <br>
  </dl>

  <h4 id=referencing-svg-shapes><span class=secno>4.1.2. </span>Referencing
   SVG shapes</h4>

  <p>An SVG shape can be referenced using the <code>url()</code> syntax. The
   shape can be any of the <a href="http://www.w3.org/TR/SVG/shapes.html">SVG
   basic shapes</a> or a <a href="http://www.w3.org/TR/SVG/paths.html">path
   element</a>.

  <p>In all cases, percentages are resolved from the border box of the
   element.

  <div class=example> <code class=html></code>
   <pre>
&lt;style&gt;
.in-a-circle {
    shape-inside: url(#circle_shape);
}

.in-a-path {
    shape-inside: url(#path-shape);
}

&lt;/style&gt;

&lt;svg ...&gt;
&lt;circle id="circle_shape" cx="50%x" cy="50%" r="50%" /&gt;
&lt;path id="path-shape" d="..." /&gt;
&lt;/svg&gt;

&lt;div class="in-a-circle"&gt;...&lt;/div&gt;
&lt;div class="in-a-path"&gt;...&lt;/div&gt;
          </pre>
  </div>

  <p> When using the SVG syntax or referencing SVG elements to define shapes,
   all the lengths expressed in percentages are resolved from the border box
   of the element. The coordinate system for the shape has its origin on the
   top-left corder of the border box with the x-axis running to the right and
   the y-axis running downwards. If the SVG element uses unitless coordinate
   values, they are equivalent to using &lsquo;<code
   class=property>px</code>&rsquo; units. If the border box of the element is
   dependent on auto sizing (i.e., the element's &lsquo;<code
   class=property>width</code>&rsquo; or &lsquo;<code
   class=property>height</code>&rsquo; property is &lsquo;<code
   class=property>auto</code>&rsquo;), then the percentage values are
   computed agains &lsquo;<code class=css>0</code>&rsquo; and resolve to 0.</p>
  <!-- End section "Shapes from SVG Syntax -->

  <h3 id=shapes-from-image><span class=secno>4.2. </span>Shapes from Image</h3>

  <div class=issue-marker> <a
   href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=15093">Bug-15093</a><br>
   <a
   href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=15090">Bug-15090</a><br>
   <a
   href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=15092">Bug-15092</a></div>

  <p> Another way of defining shapes is by specifying a source image whose
   alpha channel is used to compute the inside or outside shape. The shape is
   computed to be the path that encloses the area where the opacity of the
   specified image is greater than the &lsquo;<a
   href="#shape-image-threshold"><code
   class=property>shape-image-threshold</code></a>&rsquo; value. If the
   &lsquo;<a href="#shape-image-threshold"><code
   class=property>shape-image-threshold</code></a>&rsquo; is not specified,
   the initial value to be considered is 0.5.

  <p class=note> Note, images can define cavities and inline flow content
   should wrap inside them. In order to avoid that, another exclusion element
   can be overlaid.</p>
  <!-- End section "Shapes from image" -->

  <h3 id=declaring-shapes><span class=secno>4.3. </span>Declaring Shapes</h3>

  <p> Shapes are declared with the &lsquo;<a href="#shape-outside"><code
   class=property>shape-outside</code></a>&rsquo; or &lsquo;<a
   href="#shape-inside"><code class=property>shape-inside</code></a>&rsquo;
   properties. The &lsquo;<a href="#shape-outside"><code
   class=property>shape-outside</code></a>&rsquo; property changes the
   geometry of an <a href="#exclusion-element">exclusion
   element</a>&lsquo;<code class=css>s <span>exclusion are</span>. If the
   element is not an <a href="#exclusion-element">exclusion element</a> (see
   the </code>&rsquo;wrap-flow' property), then the &lsquo;<a
   href="#shape-outside"><code class=property>shape-outside</code></a>&rsquo;
   property has no effect.

  <p> The &lsquo;<a href="#shape-inside"><code
   class=property>shape-inside</code></a>&rsquo; property defines an
   element's <a href="#content-area">content area</a> and the element's
   inline flow content wraps into that shape.

  <h4 id=shape-outside-property><span class=secno>4.3.1. </span>The &lsquo;<a
   href="#shape-outside"><code class=property>shape-outside</code></a>&rsquo;
   Property</h4>

  <table class=propdef>
   <tbody>
    <tr>
     <th>Name:

     <td><dfn id=shape-outside title="'shape-outside'">shape-outside</dfn>

    <tr>
     <th>Value:

     <td><var>auto</var> | <var>&lt;shape&gt;</var> | <var>&lt;uri&gt;</var>

    <tr>
     <th>Initial:

     <td>auto

    <tr>
     <th>Applies to:

     <td>block-level elements

    <tr>
     <th>Inherited:

     <td>no

    <tr>
     <th>Percentages:

     <td>N/A

    <tr>
     <th>Media:

     <td>visual

    <tr>
     <th>Computed&nbsp;value:

     <td>computed lengths for &lt;shape&gt;, the absolute URI for
      &lt;uri&gt;, otherwise as specified
  </table>

  <p>The values of this property have the following meanings:

  <dl>
   <dt><dfn id=auto0 title="'shape-outside'!!'auto'">auto</dfn>

   <dd>The shape is computed based on the border box of the element.
  </dl>

  <dl>
   <dt><dfn id=ltshapegt
    title="'shape-outside'!!'&lt;shape&gt;'">&lt;shape&gt;</dfn>

   <dd> The shape is computed based on the values of one of &lsquo;<code
    class=property>rectangle</code>&rsquo;,&lsquo;<code class=css>
    circle</code>&rsquo;, &lsquo;<code class=property>ellipse</code>&rsquo;
    or &lsquo;<code class=property>polygon</code>&rsquo;.
  </dl>

  <dl>
   <dt><dfn id=lturigt
    title="'shape-outside'!!'&lt;uri&gt;'">&lt;uri&gt;</dfn>

   <dd> If the &lt;uri&gt; references an SVG shape element, that element
    defines the shape. Otherwise, if the &lt;uri&gt; references an image, the
    shape is extracted and computed based on the alpha channel of the
    specified image. If the &lt;uri&gt; does not reference an SVG shape
    element or an image, the effect is as if the value &lsquo;<code
    class=property>auto</code>&rsquo; had been specified.
  </dl>

  <div class=figure> <img
   alt="arbitrary shapes for excluions. Illustrates how content flows around shapes"
   src="images/shapes-exclusions.png" width="70%">
   <p class=caption>Arbitrary shapes for exclusions</p>
  </div>

  <div>
   <p>The above figure shows how &lsquo;<a href="#shape-outside"><code
    class=property>shape-outside</code></a>&rsquo; shapes impact the
    exclusion areas. The red box represents an element's content box and
    &lsquo;<code class=property>A</code>&rsquo;, &lsquo;<code
    class=property>B</code>&rsquo;, &lsquo;<code
    class=property>C</code>&rsquo; and &lsquo;<code
    class=property>C</code>&rsquo; represent exclusions with a complex shape
    and their &lsquo;<a href="#wrap-flow"><code
    class=property>wrap-flow</code></a>&rsquo; property set to &lsquo;<code
    class=property>both</code>&rsquo;, &lsquo;<code
    class=property>start</code>&rsquo;, &lsquo;<code
    class=property>end</code>&rsquo; and &lsquo;<code
    class=property>clear</code>&rsquo;, respectively.</p>

   <p>As illustrated in the picture, when an exclusion allows wrapping on all
    sides, text can flow inside &lsquo;<code
    class=property>holes</code>&rsquo; in the exclusion (as for exclusion
    &lsquo;<code class=property>A</code>&rsquo;). Otherwise, the exclusion
    clears the area on the side(s) defined by wrap flow, as illustrated for
    &lsquo;<code class=property>B</code>&rsquo;, &lsquo;<code
    class=property>C</code>&rsquo; and &lsquo;<code
    class=property>D</code>&rsquo; above.</p>
  </div>
  <!-- End section "The shape-outside Property" -->

  <h4 id=shape-inside-property><span class=secno>4.3.2. </span>The &lsquo;<a
   href="#shape-inside"><code class=property>shape-inside</code></a>&rsquo;
   Property</h4>

  <p> The &lsquo;<a href="#shape-inside"><code
   class=property>shape-inside</code></a>&rsquo; modifies the shape of the
   inner inline flow content from rectangular content box to an arbitrary
   geometry.

  <table class=propdef>
   <tbody>
    <tr>
     <th>Name:

     <td><dfn id=shape-inside title="'shape-inside'">shape-inside</dfn>

    <tr>
     <th>Value:

     <td><var>outside-shape</var> | <var>auto</var> |
      <var>&lt;shape&gt;</var> | <var>&lt;uri&gt;</var>

    <tr>
     <th>Initial:

     <td>outside-shape

    <tr>
     <th>Applies to:

     <td>block-level elements

    <tr>
     <th>Inherited:

     <td>no

    <tr>
     <th>Percentages:

     <td>N/A

    <tr>
     <th>Media:

     <td>visual

    <tr>
     <th>Computed&nbsp;value:

     <td>computed lengths for &lt;shape&gt;, the absolute URI for
      &lt;uri&gt;, otherwise as specified
  </table>

  <p>The values of this property have the following meanings:

  <dl>
   <dt><dfn id=outside-shape
    title="'shape-inside'!!'outside-shape'">outside-shape</dfn>

   <dd> The shape is computed based on the computed value of the &lsquo;<a
    href="#shape-outside"><code
    class=property>shape-outside</code></a>&rsquo; property.
  </dl>

  <dl>
   <dt><dfn id=auto1 title="'shape-inside'!!'auto'">auto</dfn>

   <dd> The shape is computed based on the content box of the element.
  </dl>

  <dl>
   <dt><dfn id=ltshapegt0
    title="'shape-inside'!!'&lt;shape&gt;'">&lt;shape&gt;</dfn>

   <dd> The shape is computed based on the values of one of &lsquo;<code
    class=property>rectangle</code>&rsquo;,&lsquo;<code class=css>
    circle</code>&rsquo;, &lsquo;<code class=property>ellipse</code>&rsquo;
    or &lsquo;<code class=property>polygon</code>&rsquo;.
  </dl>

  <dl>
   <dt><dfn id=lturigt0
    title="'shape-inside'!!'&lt;uri&gt;'">&lt;uri&gt;</dfn>

   <dd> If the &lt;uri&gt; references an SVG shape element, that element
    defines the shape. Otherwise, if the &lt;uri&gt; references an image, the
    shape is extracted and computed based on the alpha channel of the
    specified image. If the &lt;uri&gt; does not reference an SVG shape
    element or an image, the effect is as if the value &lsquo;<code
    class=property>auto</code>&rsquo; had been specified.
  </dl>
  <!-- End section "The shape-inside property" -->

  <h4 id=shape-image-threshold-property><span class=secno>4.3.3. </span>The
   &lsquo;<a href="#shape-image-threshold"><code
   class=property>shape-image-threshold</code></a>&rsquo; Property</h4>

  <p> The &lsquo;<a href="#shape-image-threshold"><code
   class=property>shape-image-threshold</code></a>&rsquo; defines the alpha
   channel threshold used to extract the shape using an image. A value of 0.5
   means that all the pixels that are more than 50% transparent define the
   path of the exclusion shape. The &lsquo;<a
   href="#shape-image-threshold"><code
   class=property>shape-image-threshold</code></a>&rsquo; applies to both
   &lsquo;<a href="#shape-outside"><code
   class=property>shape-outside</code></a>&rsquo; and &lsquo;<a
   href="#shape-inside"><code class=property>shape-inside</code></a>&rsquo;.

  <p class=note> The specified value of &lsquo;<a
   href="#shape-image-threshold"><code
   class=property>shape-image-threshold</code></a>&rsquo; is applied to both
   images used for &lsquo;<a href="#shape-outside"><code
   class=property>shape-outside</code></a>&rsquo; and &lsquo;<a
   href="#shape-inside"><code class=property>shape-inside</code></a>&rsquo;.

  <table class=propdef>
   <tbody>
    <tr>
     <th>Name:

     <td><dfn id=shape-image-threshold
      title="'shape-image-threshold'">shape-image-threshold</dfn>

    <tr>
     <th>Value:

     <td><var>&lt;alphavalue&gt;</var>

    <tr>
     <th>Initial:

     <td>0.5

    <tr>
     <th>Applies to:

     <td>block-level elements

    <tr>
     <th>Inherited:

     <td>no

    <tr>
     <th>Percentages:

     <td>alpha channel of the image specified by &lt;uri&gt;

    <tr>
     <th>Media:

     <td>visual

    <tr>
     <th>Computed&nbsp;value:

     <td>The same as the specified value after clipping the
      &lt;alphavalue&gt; to the range [0.0,1.0].
  </table>

  <p>The values of this property have the following meanings:

  <dl>
   <dt><dfn id=ltalphavaluegt
    title="'shape-image-threshold'!!'&lt;alphavalue&gt;'">&lt;alphavalue&gt;</dfn>

   <dd> A &lt;number&gt; value used to set the threshold used for extracting
    a shape from an image. Any values outside the range 0.0 (fully
    transparent) to 1.0 (fully opaque) will be clamped to this range.
  </dl>
  <!-- End section "The shape-image-threshold property" -->
  <!--
    <h4 id="shape-shorthand-property">The 'shape' Shorthand Property</h4>

    <table class="propdef">
        <tr>
            <th>Name:</th>
            <td><dfn title="'shape'">shape</dfn></td>
        </tr>
        <tr>
            <th>Value:</th>
            <td><var>&lt;shape-outside&gt;</var> [ / <var>&lt;shape-inside&gt;</var> ] || <var>&lt;shape-image-threshold&gt;</var></td>
        </tr>
        <tr>
            <th>Initial:</th>
            <td>see individual properties</td>
        </tr>
        <tr>
            <th>Applies to:</th>
            <td>block-level elements</td>
        </tr>
        <tr>
            <th>Inherited:</th>
            <td>no</td>
        </tr>
        <tr>
            <th>Percentages:</th>
            <td>N/A</td>
        </tr>
        <tr>
            <th>Media:</th>
            <td>visual</td>
        </tr>
        <tr>
            <th>Computed&nbsp;value:</th>
            <td>see individual properties</td>
        </tr>
    </table>
    <p>
        The 'shape' property is a shorthand property for setting the individual shape properties
        at the same place in a style sheet.
    </p>

    <div class="example">
        <p>Style declaration using the 'shape' shorthand property.</p>
<pre><code class="html">
&lt;style type="text/css"&gt;
    .shape {
        shape: rectangle(50px, 50px, 200px, 100px) / url("shape_image.png")  0.7;
    }
&lt;/style&gt
</code></pre>
    </div>
    <p class="issue">The example above must be finished.</p>
    
    -->
  <!-- End section "Shape Shorthand property -->
  <!-- End section "Declaring Shapes" -->
  <!-- End section "Shapes" -->

  <h2 id=conformance><span class=secno>5. </span>Conformance</h2>

  <h3 id=conventions><span class=secno>5.1. </span>Document Conventions</h3>

  <p> Conformance requirements are expressed with a combination of
   descriptive assertions and RFC 2119 terminology. The key words “MUST”,
   “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”,
   “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and
   “OPTIONAL” in the normative parts of this document are to be
   interpreted as described in RFC 2119. However, for readability, these
   words do not appear in all uppercase letters in this specification.

  <p> All of the text of this specification is normative except sections
   explicitly marked as non-normative, examples, and notes. <a
   href="#RFC2119" rel=biblioentry>[RFC2119]<!--{{!RFC2119}}--></a>

  <p> Examples in this specification are introduced with the words “for
   example” or are set apart from the normative text with
   <code>class="example"</code>, like this:

  <div class=example>
   <p>This is an example of an informative example.</p>
  </div>

  <p> Informative notes begin with the word “Note” and are set apart from
   the normative text with <code>class="note"</code>, like this:

  <p class=note>Note, this is an informative note.

  <h3 id=conformance-classes><span class=secno>5.2. </span>Conformance
   Classes</h3>

  <p>Conformance to CSS Exclusions and Shapes is defined for three
   conformance classes:

  <dl>
   <dt><dfn id=style-sheet title="style sheet!!as conformance class">style
    sheet</dfn>

   <dd> A <a href="http://www.w3.org/TR/CSS21/conform.html#style-sheet">CSS
    style sheet</a>.

   <dt><dfn id=renderer>renderer</dfn>

   <dd> A <a href="http://www.w3.org/TR/CSS21/conform.html#user-agent">UA</a>
    that interprets the semantics of a style sheet and renders documents that
    use them.

   <dt><dfn id=authoring-tool>authoring tool</dfn>

   <dd> A <a href="http://www.w3.org/TR/CSS21/conform.html#user-agent">UA</a>
    that writes a style sheet.
  </dl>

  <p> A style sheet is conformant to CSS Exclusions and Shapes if all of its
   declarations that use properties defined in this module have values that
   are valid according to the generic CSS grammar and the individual grammars
   of each property as given in this module.

  <p> A renderer is conformant to CSS Exclusions and Shapes if, in addition
   to interpreting the style sheet as defined by the appropriate
   specifications, it supports all the features defined by CSS Exclusions and
   Shapes by parsing them correctly and rendering the document accordingly.
   However, the inability of a UA to correctly render a document due to
   limitations of the device does not make the UA non-conformant. (For
   example, a UA is not required to render color on a monochrome monitor.)

  <p> An authoring tool is conformant to CSS Exclusions and Shapes if it
   writes style sheets that are syntactically correct according to the
   generic CSS grammar and the individual grammars of each feature in this
   module, and meet all other conformance requirements of style sheets as
   described in this module.

  <h3 id=partial><span class=secno>5.3. </span> Partial Implementations</h3>

  <p> So that authors can exploit the forward-compatible parsing rules to
   assign fallback values, CSS renderers <strong>must</strong> treat as
   invalid (and <a href="http://www.w3.org/TR/CSS21/conform.html#ignore">
   ignore as appropriate</a>) any at-rules, properties, property values,
   keywords, and other syntactic constructs for which they have no usable
   level of support. In particular, user agents <strong>must not</strong>
   selectively ignore unsupported component values and honor supported values
   in a single multi-value property declaration: if any value is considered
   invalid (as unsupported values must be), CSS requires that the entire
   declaration be ignored.

  <h3 id=experimental><span class=secno>5.4. </span> Experimental
   Implementations</h3>

  <p> To avoid clashes with future CSS features, the CSS2.1 specification
   reserves a <a
   href="http://www.w3.org/TR/CSS21/syndata.html#vendor-keywords">prefixed
   syntax</a> for proprietary and experimental extensions to CSS.

  <p> Prior to a specification reaching the Candidate Recommendation stage in
   the W3C process, all implementations of a CSS feature are considered
   experimental. The CSS Working Group recommends that implementations use a
   vendor-prefixed syntax for such features, including those in W3C Working
   Drafts. This avoids incompatibilities with future changes in the draft.

  <h3 id=testing><span class=secno>5.5. </span> Non-Experimental
   Implementations</h3>

  <p> Once a specification reaches the Candidate Recommendation stage,
   non-experimental implementations are possible, and implementors should
   release an unprefixed implementation of any CR-level feature they can
   demonstrate to be correctly implemented according to spec.

  <p> To establish and maintain the interoperability of CSS across
   implementations, the CSS Working Group requests that non-experimental CSS
   renderers submit an implementation report (and, if necessary, the
   testcases used for that implementation report) to the W3C before releasing
   an unprefixed implementation of any CSS features. Testcases submitted to
   W3C are subject to review and correction by the CSS Working Group.

  <p> Further information on submitting testcases and implementation reports
   can be found from on the CSS Working Group's website at <a
   href="http://www.w3.org/Style/CSS/Test/">
   http://www.w3.org/Style/CSS/Test/</a>. Questions should be directed to the
   <a href="http://lists.w3.org/Archives/Public/public-css-testsuite">
   public-css-testsuite@w3.org</a> mailing list.

  <h3 id=cr-exit-criteria><span class=secno>5.6. </span> CR Exit Criteria</h3>

  <p> For this specification to be advanced to Proposed Recommendation, there
   must be at least two independent, interoperable implementations of each
   feature. Each feature may be implemented by a different set of products,
   there is no requirement that all features be implemented by a single
   product. For the purposes of this criterion, we define the following
   terms:

  <dl>
   <dt>independent

   <dd> each implementation must be developed by a different party and cannot
    share, reuse, or derive from code used by another qualifying
    implementation. Sections of code that have no bearing on the
    implementation of this specification are exempt from this requirement.

   <dt>interoperable

   <dd> passing the respective test case(s) in the official CSS test suite,
    or, if the implementation is not a Web browser, an equivalent test. Every
    relevant test in the test suite should have an equivalent test created if
    such a user agent (UA) is to be used to claim interoperability. In
    addition if such a UA is to be used to claim interoperability, then there
    must one or more additional UAs which can also pass those equivalent
    tests in the same way for the purpose of interoperability. The equivalent
    tests must be made publicly available for the purposes of peer review.

   <dt>implementation

   <dd> a user agent which:
    <ol class=inline>
     <li>implements the specification.

     <li>is available to the general public. The implementation may be a
      shipping product or other publicly available version (i.e., beta
      version, preview release, or “nightly build”). Non-shipping product
      releases must have implemented the feature(s) for a period of at least
      one month in order to demonstrate stability.

     <li>is not experimental (i.e., a version specifically designed to pass
      the test suite and is not intended for normal usage going forward).
    </ol>
  </dl>

  <p> The specification will remain Candidate Recommendation for at least six
   months.

  <h2 class=no-num id=acknowledgments>Acknowledgments</h2>

  <p> This specification is made possible by input from Stephen Zilles,
   Alexandru Chiculita, Andrei Bucur, Mihnea Ovidenie, Peter Sorotokin,
   Virgil Palanciuc, Alan Stearns, Arno Gourdol, Eugene Veselov, Arron
   Eicholz, Alex Mogilevsky, Chris Jones, Marcus Mielke, and the CSS Working
   Group members.

  <h2 class=no-num id=references>References</h2>

  <h3 class=no-num id=normative-references>Normative references</h3>
  <!--begin-normative-->
  <!-- Sorted by label -->

  <dl class=bibliography>
   <dt style="display: none"><!-- keeps the doc valid if the DL is empty -->
    <!---->

   <dt id=CSS21>[CSS21]

   <dd>Bert Bos; et al. <a
    href="http://www.w3.org/TR/2011/REC-CSS2-20110607"><cite>Cascading Style
    Sheets Level 2 Revision 1 (CSS&#160;2.1) Specification.</cite></a> 7 June
    2011. W3C Recommendation. URL: <a
    href="http://www.w3.org/TR/2011/REC-CSS2-20110607">http://www.w3.org/TR/2011/REC-CSS2-20110607</a>
    </dd>
   <!---->

   <dt id=RFC2119>[RFC2119]

   <dd>S. Bradner. <a href="http://www.ietf.org/rfc/rfc2119.txt"><cite>Key
    words for use in RFCs to Indicate Requirement Levels.</cite></a> Internet
    RFC 2119. URL: <a
    href="http://www.ietf.org/rfc/rfc2119.txt">http://www.ietf.org/rfc/rfc2119.txt</a>
    </dd>
   <!---->
  </dl>
  <!--end-normative-->

  <h3 class=no-num id=other-references>Other references</h3>
  <!--begin-informative-->
  <!-- Sorted by label -->

  <dl class=bibliography>
   <dt style="display: none"><!-- keeps the doc valid if the DL is empty -->
    <!---->
  </dl>
  <!--end-informative-->

  <h2 class=no-num id=index>Index</h2>
  <!--begin-index-->

  <ul class=indexlist>
   <li>authoring tool, <a href="#authoring-tool"
    title="authoring tool"><strong>5.2.</strong></a>

   <li>Content area, <a href="#content-area"
    title="Content area"><strong>2.</strong></a>

   <li>Exclusion area, <a href="#exclusion-area"
    title="Exclusion area"><strong>2.</strong></a>

   <li>Exclusion element, <a href="#exclusion-element"
    title="Exclusion element"><strong>2.</strong></a>

   <li>Flow Container, <a href="#flow-container"
    title="Flow Container"><strong>4.</strong></a>

   <li>outside-inside, <a href="#outside-and-inside"
    title=outside-inside><strong>2.</strong></a>

   <li>renderer, <a href="#renderer" title=renderer><strong>5.2.</strong></a>
    

   <li>&lsquo;<a href="#shape-image-threshold"><code
    class=property>shape-image-threshold</code></a>&rsquo;, <a
    href="#shape-image-threshold"
    title="'shape-image-threshold'"><strong>4.3.3.</strong></a>
    <ul>
     <li>&lsquo;<code class=css>&lt;alphavalue&gt;</code>&rsquo;, <a
      href="#ltalphavaluegt"
      title="'shape-image-threshold', '&lt;alphavalue&gt;'"><strong>4.3.3.</strong></a>
      
    </ul>

   <li>&lsquo;<a href="#shape-inside"><code
    class=property>shape-inside</code></a>&rsquo;, <a href="#shape-inside"
    title="'shape-inside'"><strong>4.3.2.</strong></a>
    <ul>
     <li>&lsquo;<code class=property>auto</code>&rsquo;, <a href="#auto1"
      title="'shape-inside', 'auto'"><strong>4.3.2.</strong></a>

     <li>&lsquo;<code class=property>outside-shape</code>&rsquo;, <a
      href="#outside-shape"
      title="'shape-inside', 'outside-shape'"><strong>4.3.2.</strong></a>

     <li>&lsquo;<code class=css>&lt;shape&gt;</code>&rsquo;, <a
      href="#ltshapegt0"
      title="'shape-inside', '&lt;shape&gt;'"><strong>4.3.2.</strong></a>

     <li>&lsquo;<code class=css>&lt;uri&gt;</code>&rsquo;, <a
      href="#lturigt0"
      title="'shape-inside', '&lt;uri&gt;'"><strong>4.3.2.</strong></a>
    </ul>

   <li>&lsquo;<a href="#shape-outside"><code
    class=property>shape-outside</code></a>&rsquo;, <a href="#shape-outside"
    title="'shape-outside'"><strong>4.3.1.</strong></a>
    <ul>
     <li>&lsquo;<code class=property>auto</code>&rsquo;, <a href="#auto0"
      title="'shape-outside', 'auto'"><strong>4.3.1.</strong></a>

     <li>&lsquo;<code class=css>&lt;shape&gt;</code>&rsquo;, <a
      href="#ltshapegt"
      title="'shape-outside', '&lt;shape&gt;'"><strong>4.3.1.</strong></a>

     <li>&lsquo;<code class=css>&lt;uri&gt;</code>&rsquo;, <a href="#lturigt"
      title="'shape-outside', '&lt;uri&gt;'"><strong>4.3.1.</strong></a>
    </ul>

   <li>style sheet
    <ul>
     <li>as conformance class, <a href="#style-sheet"
      title="style sheet, as conformance class"><strong>5.2.</strong></a>
    </ul>

   <li>&lsquo;<a href="#wrap0"><code class=property>wrap</code></a>&rsquo;,
    <a href="#wrap0" title="'wrap'"><strong>3.3.2.</strong></a>

   <li>&lsquo;<a href="#wrap-flow"><code
    class=property>wrap-flow</code></a>&rsquo;, <a href="#wrap-flow"
    title="'wrap-flow'"><strong>3.1.1.</strong></a>
    <ul>
     <li>&lsquo;<code class=property>auto</code>&rsquo;, <a href="#auto"
      title="'wrap-flow', 'auto'"><strong>3.1.1.</strong></a>

     <li>&lsquo;<code class=property>both</code>&rsquo;, <a href="#both"
      title="'wrap-flow', 'both'"><strong>3.1.1.</strong></a>

     <li>&lsquo;<code class=property>clear</code>&rsquo;, <a href="#clear"
      title="'wrap-flow', 'clear'"><strong>3.1.1.</strong></a>

     <li>&lsquo;<code class=property>end</code>&rsquo;, <a href="#end"
      title="'wrap-flow', 'end'"><strong>3.1.1.</strong></a>

     <li>&lsquo;<code class=property>maximum</code>&rsquo;, <a
      href="#maximum"
      title="'wrap-flow', 'maximum'"><strong>3.1.1.</strong></a>

     <li>&lsquo;<code class=property>start</code>&rsquo;, <a href="#start"
      title="'wrap-flow', 'start'"><strong>3.1.1.</strong></a>
    </ul>

   <li>&lsquo;<a href="#wrap-margin"><code
    class=property>wrap-margin</code></a>&rsquo;, <a href="#wrap-margin"
    title="'wrap-margin'"><strong>3.2.1.</strong></a>

   <li>&lsquo;<a href="#wrap-padding"><code
    class=property>wrap-padding</code></a>&rsquo;, <a href="#wrap-padding"
    title="'wrap-padding'"><strong>3.2.2.</strong></a>

   <li>Wrapping context, <a href="#wrapping-context"
    title="Wrapping context"><strong>2.</strong></a>

   <li>&lsquo;<a href="#wrap-through"><code
    class=property>wrap-through</code></a>&rsquo;, <a href="#wrap-through"
    title="'wrap-through'"><strong>3.3.1.</strong></a>
    <ul>
     <li>&lsquo;<code class=property>none</code>&rsquo;, <a href="#none"
      title="'wrap-through', 'none'"><strong>3.3.1.</strong></a>

     <li>&lsquo;<a href="#wrap0"><code class=property>wrap</code></a>&rsquo;,
      <a href="#wrap"
      title="'wrap-through', 'wrap'"><strong>3.3.1.</strong></a>
    </ul>
  </ul>
  <!--end-index-->

  <h2 class=no-num id=property-index>Property index</h2>
  <!--begin-properties-->

  <table class=proptable>
   <thead>
    <tr>
     <th>Property

     <th>Values

     <th>Initial

     <th>Applies&nbsp;to

     <th>Inh.

     <th>Percentages

     <th>Media

   <tbody>
    <tr>
     <th><a class=property
      href="#shape-image-threshold">shape-image-threshold</a>

     <td>&lt;alphavalue&gt;

     <td>0.5

     <td>block-level elements

     <td>no

     <td>alpha channel of the image specified by &lt;uri&gt;

     <td>visual

    <tr>
     <th><a class=property href="#shape-inside">shape-inside</a>

     <td>outside-shape | auto | &lt;shape&gt; | &lt;uri&gt;

     <td>outside-shape

     <td>block-level elements

     <td>no

     <td>N/A

     <td>visual

    <tr>
     <th><a class=property href="#shape-outside">shape-outside</a>

     <td>auto | &lt;shape&gt; | &lt;uri&gt;

     <td>auto

     <td>block-level elements

     <td>no

     <td>N/A

     <td>visual

    <tr>
     <th><a class=property href="#wrap0">wrap</a>

     <td>&lt;wrap-flow&gt; || &lt;wrap-margin&gt; [ / &lt;wrap-padding&gt;]

     <td>see individual properties

     <td>block-level elements

     <td>no

     <td>N/A

     <td>visual

    <tr>
     <th><a class=property href="#wrap-flow">wrap-flow</a>

     <td>auto | both | start | end | maximum | clear

     <td>auto

     <td>block-level elements

     <td>no

     <td>N/A

     <td>visual

    <tr>
     <th><a class=property href="#wrap-margin">wrap-margin</a>

     <td>&lt;length&gt;

     <td>0

     <td>block-level elements

     <td>no

     <td>N/A

     <td>visual

    <tr>
     <th><a class=property href="#wrap-padding">wrap-padding</a>

     <td>&lt;length&gt;

     <td>0

     <td>block-level elements

     <td>no

     <td>N/A

     <td>visual

    <tr>
     <th><a class=property href="#wrap-through">wrap-through</a>

     <td>wrap | none

     <td>wrap

     <td>block-level elements

     <td>no

     <td>N/A

     <td>visual
  </table>
  <!--end-properties-->
</html>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-declaration:"~/SGML/HTML4.decl"
sgml-default-doctype-name:"html"
sgml-minimize-attributes:t
sgml-nofill-elements:("pre" "style" "br")
sgml-live-element-indicator:t
sgml-omittag:nil
sgml-shorttag:nil
sgml-namecase-general:t
sgml-general-insert-case:lower
sgml-always-quote-attributes:t
sgml-indent-step:nil
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->