- From: Tab Atkins Jr.. via cvs-syncmail <cvsmail@w3.org>
- Date: Fri, 04 Feb 2011 22:14:45 +0000
- To: public-css-commits@w3.org
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