- From: Tab Atkins Jr.. via cvs-syncmail <cvsmail@w3.org>
- Date: Thu, 03 Feb 2011 00:13:50 +0000
- To: public-css-commits@w3.org
Update of /sources/public/csswg/css3-lists
In directory hutz:/tmp/cvs-serv9528
Modified Files:
Overview.src.html
Log Message:
Tiny bit of syntax cleanup in the first part.
Rewrote list-style-type, added the exception counter styles.
Index: Overview.src.html
===================================================================
RCS file: /sources/public/csswg/css3-lists/Overview.src.html,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- Overview.src.html 31 Jan 2011 21:57:33 -0000 1.17
+++ Overview.src.html 3 Feb 2011 00:13:48 -0000 1.18
@@ -130,25 +130,22 @@
<h2>Declaring a List Item</h2>
-<p>To declare a list item, the <span class="property">'display'</span>
-property should be set to 'list-item'. This, in addition to generating
-a <span class="css">::marker</span> pseudo-element and enabling the
+<p>To declare a list item, the 'display'
+property should be set to ''list-item''. This, in addition to generating
+a ''::marker'' pseudo-element and enabling the
properties described below for that element, causes that element to
-increment the list item counter <span class="css">list-item</span>.
+increment the list item counter ''list-item''.
(This does not affect the specified or computed values of the counter
properties.)</p>
-<p>The <span class="css">list-item</span> counter is a real counter,
-and can be directly affected using the <span
-class="property">'counter-increment'</span> and <span
-class="property">'counter-reset'</span> properties. It can also be
-used in the counter() and counters() function forms.</p>
+<p>The ''list-item'' counter is a real counter,
+and can be directly affected using the 'counter-increment' and ''counter-reset'
+properties. It can also be used in the ''counter()'' and ''counters()'' functions.</p>
-<p class="issue">The CSS3 box module may define other <span
-class="property">'display'</span> values which generate a list
-marker. These should also affect the 'list-item' counter.</p>
+<p class="issue">The CSS3 box module may define other 'display' values which generate a list
+marker. These should also affect the ''list-item'' counter.</p>
-<p>Note that this new model makes the <span class="css">marker</span>
+<p>Note that this new model makes the ''marker''
display type redundant. That display type is therefore obsolete in the
CSS3 Lists model.</p>
@@ -162,10 +159,7 @@
<td><dfn>list-style-type</dfn>
<tr>
<th>Value:
- <td><b><glyph></b> | <b><algorithmic></b> |
- <b><numeric></b> | <b><alphabetic></b> |
- <b><symbolic></b> | <b><non-repeating></b> |
- normal | none
+ <td><b><string></b> | <b><counter-style></b> | none
<tr>
<th>Initial:
<td>disc
@@ -183,135 +177,476 @@
<td>specified value
</table>
-<p>This property specifies the default appearance of the list item
+<p>This property specifies the default contents of the list item
marker if 'list-style-image' has the
value 'none' or if the image pointed to by the URI cannot be
-displayed. The value 'none' specifies no marker, otherwise there are
-six types of marker: glyphs, algorithmic systems, numeric systems,
-alphabetic systems, symbolic systems, and non-repeating systems. </p>
+displayed. The value 'none' specifies no marker, and a string value uses the
+given string; otherwise, the value specifies a <b><counter-style></b> which
+is used to format the value of the ''list-item'' counter.</p>
-<p>Glyphs are single characters, whereas algorithmic, numeric,
-alphabetic, symbolic and non-repeating systems are designed so that
-each item in that style gets a deterministicly different marker. This
-makes lists easier to navigate.</p>
+<dl>
+ <dt><dfn><string></dfn></dt>
+ <dd>The ''::marker'' pseudoelement must use the provided string as its default
+ contents.</dd>
-<p>Most numbering systems have a suffix defined. It is used when
-generating the default content for the marker.</p>
+ <dt><dfn>none</dfn></dt>
+ <dd>The ''::marker'' pseudoelement must have no default contents. This will
+ suppress the creation of a marker unless the ''::marker'' has its contents
+ specified directly through the 'content' property.</dd>
-<dl>
- <dt><dfn>normal</dfn></dt>
- <dd>Causes the list-style-type of the counter to be used, as declared by the
- appropriate ''@counter'' rule. In the context of an ''@counter'' rule,
- equivalent to <b>decimal</b>.</dd>
+ <dt><counter-style></dt>
+ <dd>
+ <p>The ''::marker'' pseudoelement's default contents must be the value of
+ the ''list-item'' counter, formatted according to the given counter style.
+ Algorithms for formatting a value according to a counter style are given
+ later in this spec.</p>
+ <p>The <b>UA style sheet</b> given later in this spec provides a large list
+ of counter style definitions, and authors or users may define their own
+ counter styles as well.</p>
+ </dd>
</dl>
-<p>Other values are defined in the following sections. User agents should follow these algorithms
-unless a more normative source is found.</p>
-
<!-- ====================================================================== -->
-<h3>Glyphs</h3>
+<h2 id=predefined-counters>Predefined Counter Styles</h2>
-<p>All markers with the same glyph style should use the same glyph. To
-obtain other glyphs, authors should use the <span
-class="property">'content'</span> property of the <span
-class="css">::marker</span> pseudo-element.</p>
+<p>While authors may define their own counter styles using the ''@counter-style''
+rule defined in this spec, there are many counter styles that CSS already defined
+in previous levels, and many more that can be usefully predefined. Appendix A
+contains a required UA stylesheet which defines a large number of counter styles
+using the ''@counter-style'' rule. A few styles require special handling beyond
+what can be expressed in a stylesheet, though. Those counter styles are described
+in this section.
- <!-- Their exact rendering depends on the user agent. -->
-<dl>
- <dt><dfn><glyph></dfn></dt>
- <dd>box | check | circle | diamond | disc | hyphen | square</dd>
- <!-- these definitions are stupid. circle and square should both have the same fill type, disc and
- box should have the opposite fill type. I hate having to be backwards compatible. -->
- <dt><dfn>box</dfn></dt>
- <dd>A hollow square. (like □ U+25A1 WHITE SQUARE, ◻ U+25FB WHITE
- MEDIUM SQUARE, or ◽ U+25FD WHITE MEDIUM SMALL SQUARE)</dd> <!-- in MacIE (?) -->
+<h3 id=decimal-counters>The ''decimal'' counter style</h3>
- <dt><dfn>check</dfn></dt>
- <dd>A check mark. On interactive media, it is suggested that the same glyph which is used on the
- platform to render a checked menu item be used for 'check'. (like ✓ U+2713 CHECK MARK)</dd>
- <!-- UI module -->
+<p>The ''decimal'' counter style is the default fallback counter style for the
+''@counter-style'' rule, and is also used in extraordinary situations like fallback
+loop. As such, it has to be well-defined at all times, so that a counter can
+always be formatted regardless of the validity of the defined counter styles.</p>
- <dt><dfn>circle</dfn></dt>
- <dd>A hollow circle. (like ◦ U+25E6 WHITE BULLET)</dd> <!-- in Mozilla, WinIE, Opera, HTML4 -->
+<p>UAs must not allow the definition of the ''decimal'' counter style given in
+Appendix A to be overridden.</p>
- <dt><dfn>diamond</dfn></dt>
- <dd>A filled diamond. On interactive media, it is suggested that the same glyph which is used on
- the platform next to a selected menu item be used for 'diamond'. On some platforms, this is similar
- to 'disc'. (like ◆ U+25C6 BLACK DIAMOND or ♦ U+2666 BLACK DIAMOND SUIT)</dd> <!-- UI
- module -->
- <dt><dfn>disc</dfn></dt>
- <dd>A filled circle. (like • U+2022 BULLET)</dd> <!-- in Mozilla, WinIE, Opera, HTML4 -->
- <dt><dfn>hyphen</dfn></dt>
- <dd>A hyphen bullet. (like ⁃ U+2043 HYPHEN BULLET or – U+2013 EN DASH)</dd>
+<h3 id=glyph-counters>Glyphs</h3>
- <dt><dfn>square</dfn></dt>
- <dd>A filled square. (like ■ U+25A0 BLACK SQUARE, ◼ U+25FC BLACK
- MEDIUM SQUARE, or ◾ U+25FE BLACK MEDIUM SMALL SQUARE)</dd>
- <!-- in Mozilla, WinIE. A hollow square in Opera, HTML4. -->
+<p>CSS 2.1 defined three single-glyph counter styles (''circle'', ''disc'', and
+''square''), but didn't define precisely how to render them, instead opting to
+describe generally how they should look and leaving it up to the UA to decide how
+to render the markers.</p>
+
+<p>Appendix A gives normative definitions for these styles, but UAs may instead
+default to rendering these styles using a browser-generated image matching the
+description below. If the styles are overridden, the new style must be honored;
+this relaxation of the rendering requirements applies only to the default value
+of each counter style.</p>
+
+<p>If the UA chooses to use an image for the default rendering of these counter
+styles, the image must be scalable and designed to attractively fill a box 1em
+wide and 1em tall.</p>
+
+<dl>
+ <dt>circle</dt>
+ <dd>A hollow circle, similar to ◦ U+25E6 WHITE BULLET.</dd>
+
+ <dt>disc</dt>
+ <dd>A filled circle, similar to • U+2022 BULLET.</dd>
+
+ <dt>square</dt>
+ <dd>A filled square, similar to ■ U+25A0 BLACK SQUARE.</dd>
</dl>
-<div class="issue">
- <p>The definitions above may be removed and made UA-dependent if it is found that
- there are discrepancies in the existing implementations.</p>
- <p>We could add more values, there are certainly plenty to choose from
- in UNICODE. How about a star? Or a triangle? Note that the stylesheet
- of this document uses triangular bullets for notes, and yet that can
- only be described using a pseudo-element, content property, and
- unicode escape. Is that too much effort for a simple triangle?</p>
- <p>A future level of CSS may provide a way to specify different bullet types at
- arbitrary nesting levels. The Working Group considered adding an <span class="css">auto</span> value
- with the following definition, but decided not to include it in this release: "The <dfn>auto</dfn>
- value is intended to cause the UA to use a list numbering style different from that of the nearest
- ancestor <span class="css">list-item</span> element. The exact rendering depends on the user
- agent."</p>
-</div>
+<h3 id=complex-counters>Complex counter styles</h3>
-<p>Glyphs have no suffix.</p>
+<p>Some real-life counter styles are unfortunately too complex to be accurately
+described using the ''@counter-style'' rule. The following styles must be supported
+as default counter styles as if they were defined by theoretical
+''@counter-style'' rules placed at the end of the UA stylesheet defined in Appendix
+A, using the given name as the counter style name and the given algorithm to format
+counter values. They must be overrideable like any other predefined counter style.</p>
+<dl>
+ <dt>hebrew</dt>
+ <dd>
+ <p>This is a simple additive system defined for the range 1 to 999999.
+ The digits are split into two groups of three. Within each group,
+ appropriate digits are picked from the following list (at most one per
+ column) and written in descending order by value (hundreds first). If
+ there is more than one group, the first group is followed by U+05F3 HEBREW
+ PUNCTUATION GERESH.</p>
-<h3>Unsupported list styles</h3>
+ <table>
+ <caption>Hebrew numbering system</caption>
+ <thead>
+ <tr>
+ <th colspan="3">Hundreds
+ <th colspan="3">Tens
+ <th colspan="3">Units
+ <tr>
+ <th>Values
+ <th colspan="2">Codepoints
+ <th>Values
+ <th colspan="2">Codepoints
+ <th>Values
+ <th colspan="2">Codepoints
+ <tbody>
+ <tr>
+ <td>100
+ <td>ק
+ <td>U+05E7
+ <td>10
+ <td>י
+ <td>U+05D9
+ <td>1
+ <td>א
+ <td>U+05D0
+ <tr>
+ <td>200
+ <td>ר
+ <td>U+05E8
+ <td>20
+ <td>כ
+ <td>U+05DB
+ <td>2
+ <td>ב
+ <td>U+05D1
+ <tr>
+ <td>300
+ <td>ש
+ <td>U+05E9
+ <td>30
+ <td>ל
+ <td>U+05DC
+ <td>3
+ <td>ג
+ <td>U+05D2
+ <tr>
+ <td>400
+ <td>ת
+ <td>U+05EA
+ <td>40
+ <td>מ
+ <td>U+05DE
+ <td>4
+ <td>ד
+ <td>U+05D3
+ <tr>
+ <td>500
+ <td>תק
+ <td>U+05EA U+05E7
+ <td>50
+ <td>נ
+ <td>U+05E0
+ <td>5
+ <td>ה
+ <td>U+05D4
+ <tr>
+ <td>600
+ <td>תר
+ <td>U+05EA U+05E8
+ <td>60
+ <td>ס
+ <td>U+05E1
+ <td>6
+ <td>ו
+ <td>U+05D5
+ <tr>
+ <td>700
+ <td>תש
+ <td>U+05EA U+05E9
+ <td>70
+ <td>ע
+ <td>U+05E2
+ <td>7
+ <td>ז
+ <td>U+05D6
+ <tr>
+ <td>800
+ <td>תת
+ <td>U+05EA U+05EA
+ <td>80
+ <td>פ
+ <td>U+05E4
+ <td>8
+ <td>ח
+ <td>U+05D7
+ <tr>
+ <td>900
+ <td>תתק
+ <td>U+05EA U+05EA U+05E7
+ <td>90
+ <td>צ
+ <td>U+05E6
+ <td>9
+ <td>ט
+ <td>U+05D8
+ </table>
-<p>A user agent that does not recognize a numbering system should ignore the declaration in which
-the numbering system is used.</p>
+ <p>If the last two digits of a group (when represented in decimal) are 15
+ or 16, they should be expressed not as יה U+05D9 U+05D4
+ (10+5) and יו U+05D9 U+05D5 (10+6), but as
+ טו U+05D8 U+05D5 (9+6) and טז U+05D8 U+05D6
+ (9+7). This is done to avoid a close resemblance to the Tetragrammaton
+ (four-letter name of God) יהוה U+05D9 U+05D4
+ U+05D5 U+05D4. Although this convention is originally derived from
+ religious practice, it is universally used even in completely secular
+ contexts.</p>
-<div class="html-example"><p>For example, the following HTML document:</p>
-<pre>
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
- <HEAD>
- <TITLE>Lowercase latin numbering</TITLE>
- <STYLE type="text/css">
- OL { list-style-type: lower-roman; list-style-type: ethiopic-halehame-om-et; }
- </STYLE>
- </HEAD>
- <BODY>
- <OL>
- <LI> This is the first item.
- <LI> This is the second item.
- <LI> This is the third item.
- </OL>
- </BODY>
-</HTML>
-</pre>
+ <p>The numerical value of each letter is fixed and not determined by
+ position, so reordering a number group will not change its value. This
+ may be done when a number spells out a word with negative connotations.
+ For instance, 298, רצח U+05E8 U+05E6 U+05D7
+ (200+90+8), is the Hebrew for "murder", so it is sometimes written as
+ רחצ U+05E8 U+05D7 U+05E6 (200+8+90). Words are
+ sometimes similarly rearranged when a reordered form has especially
+ positive connotations, for example 18, יח U+05D9 U+05D7
+ (10+8) is often written as חי U+05D7 U+05D9 (8+10), the
+ Hebrew for "alive". Unlike the exception for 15 and 16, using the
+ regular form in these cases is not considered an error.</p>
-<p>might produce something like this in a user agent that does not support the
-ethiopic-halehame-om-et list style type:</p>
+ <p>The suffix for the hebrew numbering system is a dot (. U+002E
+ FULL STOP).</p>
-<pre>
- i. This is the first item.
- ii. This is the second item.
- iii. This is the third item.
-</pre>
+ <p>Numbers outside the range of the Hebrew system are rendered using the
+ ''decimal'' counter style.</p>
-<p>Note that the list marker alignment (here, right justified) depends on the user agent style
-sheet's rules for the <span class="css">::marker</span> pseudo-element.</p> </div>
+ <div class="example">
+ <p>This table shows the decimal number in the first cell, and the
+ equivalent hebrew number in the second.</p>
+
+ <table class="hebrew-example">
+ <thead>
+ <tr>
+ <th>Decimal
+ <th>Hebrew
+ <tbody>
+ <tr>
+ <td>-3
+ <td>-3
+ <tr>
+ <td>-2
+ <td>-2
+ <tr>
+ <td>-1
+ <td>-1
+ <tr>
+ <td>0
+ <td>0
+ <tr>
+ <td>1
+ <td>א
+ <tr>
+ <td>2
+ <td>ב
+ <tr>
+ <td>3
+ <td>ג
+ <tr>
+ <td>4
+ <td>ד
+ <tr>
+ <td>5
+ <td>ה
+ <tbody>
+ <tr>
+ <td>97
+ <td>צז
+ <tr>
+ <td>98
+ <td>צח
+ <tr>
+ <td>99
+ <td>צט
+ <tr>
+ <td>100
+ <td>ק
+ <tr>
+ <td>101
+ <td>קא
+ <tr>
+ <td>944
+ <td>תתקמד
+ <tr>
+ <td>945
+ <td>תתקמה
+ <tr>
+ <td>946
+ <td>תתקמו
+ <tr>
+ <td>999
+ <td>תתקצט
+ <tbody>
+ <tr>
+ <td>1000
+ <td>א׳
+ <tr>
+ <td>1001
+ <td>א׳א
+ <tr>
+ <td>1998
+ <td>א׳תתקצח
+ <tr>
+ <td>1999
+ <td>א׳תתקצט
+ <tr>
+ <td>2000
+ <td>ב׳
+ <tr>
+ <td>2001
+ <td>ב׳א
+ <tr>
+ <td>2003
+ <td>ב׳ג
+ <tr>
+ <td>2748
+ <td>ב׳תשמח
+ <tr>
+ <td>2750
+ <td>ב׳תשנ
+ </table>
+
+ <p>This example (like all other examples) is non-normative. If one of
+ the numbers above is inconsistent with the rules described above, then
+ the example should be disregarded.</p>
+ </div>
+ </dd>
+
+ <dt>ethiopic-numeric</dt>
+ <dd>
+ <p>The Ethiopian numbering system is defined for all positive non-zero numbers.
+ The following algorithm converts decimal digits to ethiopic numbers.</p>
+
+ <ol>
+ <li>Split the number into groups of two digits, starting with the least
+ significant decimal digit.</li>
+
+ <li>Index each group sequentially, starting from the least significant
+ as group number zero.</li>
+
+ <li>If the group has an odd index (as given in the previous step) and
+ has the value 1, or if the group is the most significant one and has
+ the value 1, or if the group has the value zero, then remove the digit
+ (but leave the group, so it still has a separator appended below).</li>
+
+ <li>For each remaining digit, substitute the relevant ethiopic character
+ from the list below.
+ <table>
+ <caption>Ethiopic numbering system</caption>
+ <thead>
+ <tr>
+ <th colspan="3">Tens
+ <th colspan="3">Units
+ <tr>
+ <th>Values
+ <th colspan="2">Codepoints
+ <th>Values
+ <th colspan="2">Codepoints
+ <tbody>
+ <tr>
+ <td>10
+ <td>፲
+ <td>U+1372
+ <td>1
+ <td>፩
+ <td>U+1369
+ <tr>
+ <td>20
+ <td>፳
+ <td>U+1373
+ <td>2
+ <td>፪
+ <td>U+136A
+ <tr>
+ <td>30
+ <td>፴
+ <td>U+1374
+ <td>3
+ <td>፫
+ <td>U+136B
+ <tr>
+ <td>40
+ <td>፵
+ <td>U+1375
+ <td>4
+ <td>፬
+ <td>U+136C
+ <tr>
+ <td>50
+ <td>፶
+ <td>U+1376
+ <td>5
+ <td>፭
+ <td>U+136D
+ <tr>
+ <td>60
+ <td>፷
+ <td>U+1377
+ <td>6
+ <td>፮
+ <td>U+136E
+ <tr>
+ <td>70
+ <td>፸
+ <td>U+1378
+ <td>7
+ <td>፯
+ <td>U+136F
+ <tr>
+ <td>80
+ <td>፹
+ <td>U+1379
+ <td>8
+ <td>፰
+ <td>U+1370
+ <tr>
+ <td>90
+ <td>፺
+ <td>U+137A
+ <td>9
+ <td>፱
+ <td>U+1371
+ </table>
+ </li>
+
+ <li>For each group with an odd index (as given in the second step),
+ append ፻ U+137B.</li>
+
+ <li>For each group with an even index (as given in the second step),
+ except the group with number 0, append ፼ U+137C.</li>
+
+ <li>Concatenate the groups into one string.</li>
+ </ol>
+
+ <p>This system is defined for all numbers greater than zero. For zero and
+ negative numbers, the decimal system is used instead.</p>
+
+ <p>The suffix for the ethiopic-numeric numbering systems is a dot
+ (. U+002E FULL STOP). <span class="issue">Is there a better suffix
+ to use? <strong>The alphabetic ethiopic systems use a different
+ suffix.</strong></span></p>
+
+ <div class="example">
+ <p>The decimal number 100, in ethiopic, is ፻ U+137B <!-- odd --></p>
+
+ <p> The decimal number 78010092, in ethiopic, is
+ ፸፰፻፩፼፻፺፪ U+1378
+ U+1370 U+137B <!-- 70 8 odd --> U+1369 U+137C <!-- 1 even --> U+137B
+ <!-- odd --> U+137A U+136A. <!-- 90 2 --></p>
+
+ <p> The decimal number 780000001092, in ethiopic, is
+ ፸፰፻፩፼፻፼፻፺፪
+ U+1378 U+1370 U+137B <!-- 70 8 odd --> U+1369 U+137C <!-- 1 even -->
+ U+137B <!-- odd --> U+137C <!-- even --> U+137B <!-- odd --> U+137A
+ U+136A. <!-- 90 2 --></p>
+ </div>
+ </dd>
+</dl>
<!-- ====================================================================== -->
Received on Thursday, 3 February 2011 00:13:52 UTC