csswg/css3-lists Overview.html,1.99,1.100 Overview.src.html,1.146,1.147

Update of /sources/public/csswg/css3-lists
In directory hutz:/tmp/cvs-serv17004

Modified Files:
	Overview.html Overview.src.html 
Log Message:
Rewrite of position:marker to be more correct and handle differing writing-modes properly.

Index: Overview.html
===================================================================
RCS file: /sources/public/csswg/css3-lists/Overview.html,v
retrieving revision 1.99
retrieving revision 1.100
diff -u -d -r1.99 -r1.100
--- Overview.html	18 Nov 2011 21:14:51 -0000	1.99
+++ Overview.html	18 Nov 2011 22:02:26 -0000	1.100
@@ -1152,20 +1152,14 @@
    href="http://www.w3.org/TR/CSS21/visuren.html#absolutely-positioned">absolutely
    positioned</a>.
 
-  <p>The element'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>To calculate the element's horizontal position, we must first define a
-   few terms:
+  <p>To calculate the marker's position, we must first define a few terms:
 
   <dl>
    <dt><dfn id=ancestor-list-item
     title="ancestor list item|ancestor list item's">ancestor list item</dfn>
 
    <dd>The <a href="#ancestor-list-item"><i>ancestor list item</i></a> is the
-    marker's nearest list item ancestor.
+    marker's nearest list item ancestor element.
 
    <dt><dfn id=marker-positioning-reference-element>marker positioning
     reference element</dfn>
@@ -1189,33 +1183,46 @@
      href="#marker-positioning-reference-element"><i>marker positioning
      reference element</i></a> is the <a
      href="#ancestor-list-item"><i>ancestor list item</i></a>.</p>
+
+   <dt><dfn id=list-item-positioning-edge>list item positioning edge</dfn>
+
+   <dd>The border edge of the <a href="#ancestor-list-item"><i>ancestor list
+    item</i></a> corresponding to the "start" or "before" edge of the <a
+    href="#marker-positioning-reference-element"><i>marker positioning
+    reference element</i></a>, whichever is in the <a
+    href="#ancestor-list-item"><i>ancestor list item's</i></a> inline axis.
+
+   <dt><dfn id=marker-positioning-edge>marker positioning edge</dfn>
+
+   <dd>The opposing edge relative to the <a
+    href="#list-item-positioning-edge"><i>list item positioning edge</i></a>
+    on the marker's margin box. For example, if the <i>list item positioning
+    edge ended up being the left border edge of the <a
+    href="#ancestor-list-item"><i>ancestor list item</i></a>, the <a
+    href="#marker-positioning-edge"><i>marker positioning edge</i></a> would
+    be the right margin edge of the marker.</i>
   </dl>
 
-  <p>The element's horizontal position must then be set such that the
-   element's margin edge that corresponds to the "end" edge of the <a
-   href="#marker-positioning-reference-element"><i>marker positioning
-   reference element</i></a> is flush with the <a
-   href="#ancestor-list-item"><i>ancestor list item's</i></a> border edge
-   that corresponds to the "start" edge of the <a
-   href="#marker-positioning-reference-element"><i>marker positioning
-   reference element</i></a>.
+  <p>The marker's position in the <a href="#ancestor-list-item"><i>ancestor
+   list item's</i></a> block axis 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>The marker's position in the <a href="#ancestor-list-item"><i>ancestor
+   list item's</i></a> inline axis must be set such that the <a
+   href="#marker-positioning-edge"><i>marker positioning edge</i></a> is
+   flush with the <a href="#list-item-positioning-edge"><i>list item
+   positioning edge</i></a>.
 
   <p class=note>The purpose of this somewhat convoluted definition is to
    position the marker flush against its list item, and then when
    "marker-attachment:list-container", 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.
-
-  <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> is vertical but the <a
-   href="#ancestor-list-item"><i>ancestor list item</i></a> is horizontal,
-   this definition is nonsensical, as it requires a vertical edge of the
-   marker to be flush against a horizontal edge of the <a
-   href="#ancestor-list-item"><i>ancestor list item</i></a>. Need to think on
-   what UI would be acceptable for such a crazy case, and how to state it in
-   non-crazy terms.
+   markers are visible. And on top of all that, do something sane in the face
+   of potentially differing writing-modes on the marker, list item, and
+   container.
 
   <p>All elements or pseudo-elements with <code
    class=css>"position:marker"</code> that share a common <a
@@ -5045,6 +5052,9 @@
    <li>list item, <a href="#list-item"
     title="list item"><strong>2.</strong></a>
 
+   <li>list item positioning edge, <a href="#list-item-positioning-edge"
+    title="list item positioning edge"><strong>7.1.</strong></a>
+
    <li>list-style, <a href="#list-style"
     title=list-style><strong>5.</strong></a>
 
@@ -5110,6 +5120,9 @@
    <li>marker-attachment, <a href="#marker-attachment0"
     title=marker-attachment><strong>7.2.</strong></a>
 
+   <li>marker positioning edge, <a href="#marker-positioning-edge"
+    title="marker positioning edge"><strong>7.1.</strong></a>
+
    <li>marker positioning reference element, <a
     href="#marker-positioning-reference-element"
     title="marker positioning reference element"><strong>7.1.</strong></a>

Index: Overview.src.html
===================================================================
RCS file: /sources/public/csswg/css3-lists/Overview.src.html,v
retrieving revision 1.146
retrieving revision 1.147
diff -u -d -r1.146 -r1.147
--- Overview.src.html	18 Nov 2011 21:14:51 -0000	1.146
+++ Overview.src.html	18 Nov 2011 22:02:26 -0000	1.147
@@ -671,13 +671,11 @@
 
 	<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.  An element with <code class=css>position:marker</code> counts as <a href="http://www.w3.org/TR/CSS21/visuren.html#absolutely-positioned">absolutely positioned</a>.</p>
 
-	<p>The element'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 element's horizontal position, we must first define a few terms:</p>
+	<p>To calculate the marker's position, we must first define a few terms:</p>
 
 	<dl>
 		<dt><dfn title="ancestor list item|ancestor list item's">ancestor list item</dfn></dt>
-		<dd>The <i>ancestor list item</i> is the marker's nearest list item ancestor.</dd>
+		<dd>The <i>ancestor list item</i> is the marker's nearest list item ancestor element.</dd>
 
 		<dt><dfn>marker positioning reference element</dfn></dt>
 		<dd>
@@ -687,19 +685,19 @@
 			
 			<p>Otherwise, the <i>marker positioning reference element</i> is the <i>ancestor list item</i>.</p>
 		</dd>
+
+		<dt><dfn>list item positioning edge</dfn></dt>
+		<dd>The border edge of the <i>ancestor list item</i> corresponding to the "start" or "before" edge of the <i>marker positioning reference element</i>, whichever is in the <i>ancestor list item's</i> inline axis.</dd>
+
+		<dt><dfn>marker positioning edge</dfn></dt>
+		<dd>The opposing edge relative to the <i>list item positioning edge</i> on the marker's margin box.  For example, if the <i>list item positioning edge ended up being the left border edge of the <i>ancestor list item</i>, the <i>marker positioning edge</i> would be the right margin edge of the marker.</dd>
 	</dl>
 
-	<p>The element's horizontal position must then be set such that the element's margin edge that corresponds to the "end" edge of the <i>marker positioning reference element</i> is flush with the <i>ancestor list item's</i> border edge that corresponds to the "start" edge of the <i>marker positioning reference element</i>.</p>
+	<p>The marker's position in the <i>ancestor list item's</i> block axis 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 class='note'>The purpose of this somewhat convoluted definition is to position the marker flush against its list item, and then when "marker-attachment:list-container", 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.</p>
+	<p>The marker's position in the <i>ancestor list item's</i> inline axis must be set such that the <i>marker positioning edge</i> is flush with the <i>list item positioning edge</i>.</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>
-	is vertical but the <i>ancestor list item</i> is horizontal, this definition
-	is nonsensical, as it requires a vertical edge of the marker to be flush 
-	against a horizontal edge of the <i>ancestor list item</i>.  Need to think
-	on what UI would be acceptable for such a crazy case, and how to state it
-	in non-crazy terms.</p>
+	<p class='note'>The purpose of this somewhat convoluted definition is to position the marker flush against its list item, and then when "marker-attachment:list-container", 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.  And on top of all that, do something sane in the face of potentially differing writing-modes on the marker, list item, and container.</p>
 
 	<p>All elements or pseudo-elements with <code class=css>"position:marker"</code> that share a common <i>ancestor list item</i> are known as <dfn title='associated-marker'>markers associated with that list item</dfn>.</p>
 

Received on Friday, 18 November 2011 22:02:31 UTC