csswg/css3-lists Overview.src.html,1.22,1.23

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

Modified Files:
	Overview.src.html 
Log Message:
Rewrote 'list-style-position' section.
Added a ton of -position issues.


Index: Overview.src.html
===================================================================
RCS file: /sources/public/csswg/css3-lists/Overview.src.html,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- Overview.src.html	3 Feb 2011 17:10:17 -0000	1.22
+++ Overview.src.html	4 Feb 2011 22:14:43 -0000	1.23
@@ -734,7 +734,7 @@
 		<td><dfn>list-style-position</dfn>
 	<tr>
 		<th>Value:
-		<td>inside | outside | hanging
+		<td>inside | hanging | outside
 	<tr>
 		<th>Initial:
 		<td>outside
@@ -758,22 +758,60 @@
 <dl>
 	<dt><dfn>inside</dfn></dt>
 	<dd>The ''::marker'' pseudo-element is an inline element placed immediately
-	before the ''::before'' pseudo-element in the list item, 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>
+	before the ''::before'' pseudo-element in the list item'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>hanging</dfn></dt>
+	<dd>As ''inside'', except the marker is out-of-flow.
+	The marker must be positioned such that its "before" edge is aligned with the 
+	"before" edge of the first line box in the list item, and its "end" edge is 
+	flush with the "start" edge of the first line box in the list item.  
+	<span class=note>Note that this causes the marker to still respond to the
+	'text-align' property, as the boundaries of line boxes depend on 'text-align'.</span></dd>
 
 	<dt><dfn>outside</dfn></dt>
-	<dd>As ''inside'', except the marker is positioned, as if it were ''position:absolute'',
-	such that in an ltr list item the marker's right edge is positioned against the
-	left edge of the first line box in the list item, while in an rtl list item
-	the marker's left edge is positioned against the right edge of the first line
-	box in the list item.  Note that this implies that the marker may move to stay
-	near the text of the list item if, for example, 'text-align' is set to ''right''
-	in an ltr list item.</dd>
+	<dd>As ''inside'', except the marker is out-of-flow.
+	The marker must be positioned such that its "before" edge is aligned with the 
+	"before" edge of the list item.  If the list item's parent box is ltr, the marker's
+	"end" edge must be flush with the list item's "start" edge; if the list item's
+	parent box is rtl, the marker's "start" edge must be flush with the list item's
+	"end" edge.</dd>
 </dl>
 
+<div class=issue>
+	<p>''hanging'' is meant to emulate what some browsers (IE8, Firefox, Opera)
+	did for the CSS2.1 "outside" value, with somewhat more detail.</p>
+
+	<p>''outside'' is meant to emulate what other browsers (Webkit, IE9) did for
+	the CSS2.1 "outside" value, again with more detail.  There is a notable behavior
+	change, in that the markers pay attention to the container's direction, not
+	the list item.  This arose from the "Requirements for bidi in HTML" group's
+	conclusions - in a mixed-direction list, right now it's impossible to determine 
+	ahead of time which side of the container the gutter should go (to contain the
+	bullet).  You have to put a gutter on both sides, even if all the items are
+	one direction, just in case.</p>
+
+	<p>I'm not sure exactly how to express what I want with the "out-of-flow" comment
+	in ''hanging'' and ''outside''.  I want to change how it's positioned, but 
+	without invoking the "positioned element" machinery.  Is that good/possible?
+	I also don't want to interfere with the author actually setting 'position' on
+	''::marker''.  All this, and the ''::marker'' should still be a child of the
+	list item in the box tree (otherwise the behavior is surprising).</p>
+
+	<p>How should I define "first line box" for ''hanging''?  The marker is intended
+	to be "magically positioned" - does this invoke the same logic that Positioned
+	Layout defines, where it leaves behind an inline placeholder that will generate
+	a line box?  If not, do I descend into children to find the first linebox?
+	If I do that, there's the possibility of conflict, if a list item contains a 
+	list item, and both of their markers position off of the same linebox.  The 
+	consequences of this are well-defined, but is that okay?  I get 3 different
+	behaviors out of the 3 hanging-like browsers.</p>
+</div>
+
 <p>Note that a marker is only generated if the computed value of the 'content' 
 property for the element's ''::marker'' pseudo-element is not ''inhibit''.</p>
 

Received on Friday, 4 February 2011 22:14:46 UTC