- From: Tab Atkins Jr.. via cvs-syncmail <cvsmail@w3.org>
- Date: Sat, 09 Jul 2011 01:18:27 +0000
- To: public-css-commits@w3.org
Update of /sources/public/csswg/css3-lists In directory hutz:/tmp/cvs-serv18875 Modified Files: Overview.html Overview.src.html Log Message: Fixed up the -position:outside and position:marker sections. If I just copy IE, it's so simple! Index: Overview.html =================================================================== RCS file: /sources/public/csswg/css3-lists/Overview.html,v retrieving revision 1.65 retrieving revision 1.66 diff -u -d -r1.65 -r1.66 --- Overview.html 30 Jun 2011 23:13:30 -0000 1.65 +++ Overview.html 9 Jul 2011 01:18:25 -0000 1.66 @@ -25,12 +25,12 @@ <h1>CSS Lists and Counters Module Level 3</h1> - <h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 30 June 2011</h2> + <h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 9 July 2011</h2> <dl> <dt>This version: - <dd><!--<a href="http://www.w3.org/TR/2011/WD-css3-lists-20110630">http://www.w3.org/TR/2011/WD-css3-lists-20110630</a></dd>--> + <dd><!--<a href="http://www.w3.org/TR/2011/WD-css3-lists-20110709">http://www.w3.org/TR/2011/WD-css3-lists-20110709</a></dd>--> <a href="http://dev.w3.org/csswg/css3-lists/">http://dev.w3.org/csswg/css3-lists/</a> @@ -652,26 +652,15 @@ ‘<code class=css>::marker</code>’ pseudo-element in this state, and this ‘<code class=css>::marker</code>’ box participates in the inline box model in the normal manner. - <p class=issue>Inline markers have some special behavior wrt white-space - collapsing at the beginning of the list-item. Is this behavior necessary - for web-compat, or can I just spec it away? (Since I have outside - markers basically be abspos, it doesn't apply to them.) <dt><dfn id=outside>outside</dfn> <dd>As ‘<a href="#inside"><code class=css>inside</code></a>’, - except the ::marker pseudo-element is placed immediately before the first - text or significant whitespace in the <a href="#list-item"><i>list - item</i></a> or its descendants. As well, the computed value of - ‘<code class=property>position</code>’ on the ::marker - pseudo-element is ‘<code class=css>marker</code>’. The - section on the new ‘<code class=property>marker</code>’ value - for ‘<code class=property>position</code>’ explains the - consequences of this. - <p class=issue>I haven't yet defined what happens when the list item - doesn't contain any text, or when the first text is within a child - list-item. I need to figure out how much of current implementations is - accidental and how much is necessary. + plus the computed value of ‘<code + class=property>position</code>’ on the ::marker pseudo-element is + ‘<code class=css>marker</code>’. The section on the new + ‘<code class=property>marker</code>’ value for ‘<code + class=property>position</code>’ explains the consequences of this. </dl> <p>Note that a marker is only generated if the computed value of the @@ -895,11 +884,8 @@ <p>Just like other generated content, markers generate a box when they're created, which has margins, border, padding, and everything else a box normally has. Markers are placed at the beginning of their superior - parent's content (the exact location depends on the value of ‘<a - href="#list-style-position"><code - class=property>list-style-position</code></a>’ on the list item, as - explained in the definition of that property). Marker boxes are inline by - default, though certain values for ‘<a + parent's content, before the ::before pseudo-element (if it exists). + Marker boxes are inline by default, though certain values for ‘<a href="#list-style-position"><code class=property>list-style-position</code></a>’ on the list item can make the marker box positioned, which can have an effect on the computed @@ -1171,10 +1157,12 @@ </table> <p>The ‘<code class=css>marker</code>’ value for ‘<code - class=property>position</code>’ depends on the box it is set on - having a list item ancestor. If there is no list item ancestor, this value - must be treated identically to ‘<code - class=css>position:relative</code>’. + class=property>position</code>’ depends on the element it is set on + having a list item ancestor. If the specified value of ‘<code + class=property>position</code>’ is ‘<code + class=css>marker</code>’ and the element does not have a list-item + ancestor, ‘<code class=property>position</code>’ must compute + to ‘<code class=property>relative</code>’ on the element. <p>The box's vertical position is calculated according to the <a href="http://www.w3.org/TR/CSS21/visuren.html#normal-flow">normal @@ -1185,17 +1173,18 @@ nearest list item ancestor as the <dfn id=ancestor-list-item>ancestor list item</dfn>, and the parent of that box as the <dfn id=ancestor-list-container>ancestor list container</dfn>. The box's - horizontal position must then be set such that the edge of the box + horizontal position must then be set such that the margin edge of the box corresponding to the "end" edge of the <a href="#ancestor-list-container"><i>ancestor list container</i></a> is - flush with the edge of the <a href="#ancestor-list-item"><i>ancestor list - item</i></a> corresponding to the "start" edge of the <a - href="#ancestor-list-container"><i>ancestor list container</i></a>. <span - class=note>The purpose of this somewhat convoluted definition is to - position the marker flush against its list item, and to keep all the - markers for a given list on the same side of their list items even in - mixed-direction text, so that authors can specify padding on only one side - and still ensure their markers are visible.</span> + flush with the border edge of the <a + href="#ancestor-list-item"><i>ancestor list item</i></a> corresponding to + the "start" edge of the <a href="#ancestor-list-container"><i>ancestor + list container</i></a>. <span class=note>The purpose of this somewhat + convoluted definition is to position the marker flush against its list + item, and to keep all the markers for a given list on the same side of + their list items even in mixed-direction text, so that authors can specify + padding on only one side and still ensure their markers are + visible.</span> <p class=issue>This handles ltr/rtl mixed-direction text, but not mixed horizontal and vertical text. For example, if the <a Index: Overview.src.html =================================================================== RCS file: /sources/public/csswg/css3-lists/Overview.src.html,v retrieving revision 1.114 retrieving revision 1.115 diff -u -d -r1.114 -r1.115 --- Overview.src.html 30 Jun 2011 23:13:30 -0000 1.114 +++ Overview.src.html 9 Jul 2011 01:18:25 -0000 1.115 @@ -329,27 +329,10 @@ <dl> <dt><dfn>inside</dfn></dt> - <dd>The ''::marker'' pseudo-element is a 'display:inline' element placed immediately - before the ''::before'' pseudo-element in the <i>list item</i>'s principle box, after - which the element's content flows. Note that if there is no inline content, - this will create a line box, just as content in an inline ''::before'' pseudo-element - would. Also note that all the properties that apply to inline elements apply - to the ''::marker'' pseudo-element in this state, and this ''::marker'' box - participates in the inline box model in the normal manner. - <p class=issue>Inline markers have some special behavior wrt white-space - collapsing at the beginning of the list-item. Is this behavior necessary for web-compat, - or can I just spec it away? (Since I have outside markers basically be abspos, it - doesn't apply to them.)</p></dd> + <dd>The ''::marker'' pseudo-element is a 'display:inline' element placed immediately before the ''::before'' pseudo-element in the <i>list item</i>'s principle box, after which the element's content flows. Note that if there is no inline content, this will create a line box, just as content in an inline ''::before'' pseudo-element would. Also note that all the properties that apply to inline elements apply to the ''::marker'' pseudo-element in this state, and this ''::marker'' box participates in the inline box model in the normal manner.</dd> <dt><dfn>outside</dfn></dt> - <dd>As ''inside'', except the ::marker pseudo-element is placed - immediately before the first text or significant whitespace in the - <i>list item</i> or its descendants. As well, the computed value of - 'position' on the ::marker pseudo-element is ''marker''. The section on - the new 'marker' value for 'position' explains the consequences of this. - <p class=issue>I haven't yet defined what happens when the list item doesn't contain - any text, or when the first text is within a child list-item. I need to figure out how much - of current implementations is accidental and how much is necessary.</p></dd> + <dd>As ''inside'', plus the computed value of 'position' on the ::marker pseudo-element is ''marker''. The section on the new 'marker' value for 'position' explains the consequences of this.</dd> </dl> <p>Note that a marker is only generated if the computed value of the 'content' @@ -521,14 +504,7 @@ the computed value of the 'content' property for the pseudo-element is not ''none''.</p> - <p>Just like other generated content, markers generate a box when they're created, - which has margins, border, padding, and everything else a box normally has. Markers - are placed at the beginning of their superior parent's content (the exact - location depends on the value of 'list-style-position' on the list item, as - explained in the definition of that property). Marker boxes are inline by - default, though certain values for 'list-style-position' on the list item - can make the marker box positioned, which can have an effect on the computed - value of display.</p> + <p>Just like other generated content, markers generate a box when they're created, which has margins, border, padding, and everything else a box normally has. Markers are placed at the beginning of their superior parent's content, before the ::before pseudo-element (if it exists). Marker boxes are inline by default, though certain values for 'list-style-position' on the list item can make the marker box positioned, which can have an effect on the computed value of display.</p> <div class="html-example"> <p>In the following example, the content is centered within a marker @@ -679,13 +655,7 @@ <li>Otherwise, if the computed value of 'list-style-type' is a string, then the computed value of the 'content' property is that string.</li> - <li>Otherwise, if the computed value of 'list-style-type' is the name - of a counter style, then the computed value of the 'content' property - is <code><counter-prefix> counter(list-item, <counter-name>) <counter-suffix></code>, - where <i><counter-name></i> is the computed value of the 'list-style-type' - property and <i><counter-prefix></i> and <i><counter-suffix></i> are - the values of the <i title='counter-prefix'>prefix</i> and <i title='counter-suffix'>suffix</i> - descriptors for the counter style with that name.</li> + <li>Otherwise, if the computed value of 'list-style-type' is the name of a counter style, then the computed value of the 'content' property is <code><counter-prefix> counter(list-item, <counter-name>) <counter-suffix></code>, where <i><counter-name></i> is the computed value of the 'list-style-type' property and <i><counter-prefix></i> and <i><counter-suffix></i> are the values of the <i title='counter-prefix'>prefix</i> and <i title='counter-suffix'>suffix</i> descriptors for the counter style with that name.</li> <li>Otherwise the computed value is ''none''.</li> </ol> @@ -759,27 +729,14 @@ </tbody> </table> - <p>The ''marker'' value for 'position' depends on the box it is set on - having a list item ancestor. If there is no list item ancestor, this value - must be treated identically to ''position:relative''.</p> + <p>The ''marker'' value for 'position' depends on the element it is set on having a list item ancestor. If the specified value of 'position' is ''marker'' and the element does not have a list-item ancestor, 'position' must compute to 'relative' on the element.</p> <p>The box's vertical position is calculated according to the <a href="http://www.w3.org/TR/CSS21/visuren.html#normal-flow">normal flow</a>. <span class='note'>In the Positioned Layout Module this will be defined more precisely in terms of placeholders.</span></p> - <p>To calculate the box's horizontal position, first define the box's nearest - list item ancestor as the <dfn>ancestor list item</dfn>, and the parent of - that box as the <dfn>ancestor list container</dfn>. The box's horizontal - position must then be set such that the edge of the box corresponding to the - "end" edge of the <i>ancestor list container</i> is flush with the edge of - the <i>ancestor list item</i> corresponding to the "start" edge of the - <i>ancestor list container</i>. <span class='note'>The purpose of this - somewhat convoluted definition is to position the marker flush against its - list item, and to keep all the markers for a given list on the same side - of their list items even in mixed-direction text, so that authors can - specify padding on only one side and still ensure their markers are - visible.</span></p> + <p>To calculate the box's horizontal position, first define the box's nearest list item ancestor as the <dfn>ancestor list item</dfn>, and the parent of that box as the <dfn>ancestor list container</dfn>. The box's horizontal position must then be set such that the margin edge of the box corresponding to the "end" edge of the <i>ancestor list container</i> is flush with the border edge of the <i>ancestor list item</i> corresponding to the "start" edge of the <i>ancestor list container</i>. <span class='note'>The purpose of this somewhat convoluted definition is to position the marker flush against its list item, and to keep all the markers for a given list on the same side of their list items even in mixed-direction text, so that authors can specify padding on only one side and still ensure their markers are visible.</span></p> <p class='issue'>This handles ltr/rtl mixed-direction text, but not mixed horizontal and vertical text. For example, if the <i>ancestor list container</i>
Received on Saturday, 9 July 2011 01:18:35 UTC