- From: Tab Atkins Jr.. via cvs-syncmail <cvsmail@w3.org>
- Date: Wed, 16 Mar 2011 17:08:32 +0000
- To: public-css-commits@w3.org
Update of /sources/public/csswg/css3-lists In directory hutz:/tmp/cvs-serv4326 Modified Files: Overview.src.html Log Message: Rewrote the meaning of 'hanging' and 'outside', and adjusted the ::marker definition to fit. Index: Overview.src.html =================================================================== RCS file: /sources/public/csswg/css3-lists/Overview.src.html,v retrieving revision 1.31 retrieving revision 1.32 diff -u -d -r1.31 -r1.32 --- Overview.src.html 16 Mar 2011 00:47:24 -0000 1.31 +++ Overview.src.html 16 Mar 2011 17:08:30 -0000 1.32 @@ -792,55 +792,27 @@ participates in the inline box model in the normal manner.</dd> <dt><dfn>hanging</dfn></dt> - <dd>As ''inside'', except the marker is absolutely positioned (see the section - on ''::marker'' for more details.) The marker's static position is 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> + <dd>As ''inside'', except the marker is absolutely positioned. The marker's + static position is such that its baseline is aligned with the baseline + 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, per the Positioned Layout spec, absolutely positioned + boxes leave behind a 'placeholder' in their original position in the box tree, + which may have an effect on line-box generation.</span></dd> <dt><dfn>outside</dfn></dt> - <dd>As ''inside'', except the marker is absolutely positioned (see the section - on ''::marker'' for more details.) The marker's static position is 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> + <dd>As ''inside'', except the marker is absolutely positioned and has the same + directionality as the list item's parent box. The marker's static position is such that + its "over" edge is flush with the edge of the list item corresponding with + the "over" edge of the list item's parent box, and it's "end" edge is + flush with the edge fo the list item corresponding to the "start" edge of the + list item's parent box.</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 class=issue>Are the positioning rules for ''hanging'' and ''outside'' good?</p> <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> + property for the element's ''::marker'' pseudo-element is not ''none''.</p> <div class=example> <p>For example: @@ -1007,7 +979,9 @@ are placed at the beginning of their superior parent's content, immediately before a ''::before'' pseudo-element on the same superior parent. Marker boxes are inline-block by default, and so a value of ''auto'' for 'width' - resolves to the width of the marker's content.</p> + resolves to the width of the marker's content. The value of 'list-style-position' + on the marker's superior parent can vary the marker's directionality and the + initial value of its ''position'' property.</p> <div class="html-example"> <p>In the following example, the content is centered within a marker @@ -1623,7 +1597,7 @@ ol, ul { display: block; margin: 1em 0; - padding-left: 2.5em; + padding-left: 40px; } ol ol, ol ul, ul ul, ul ol { @@ -1636,9 +1610,10 @@ } li::marker { - margin-right: 1em; - text-align: right; - /* 'display', 'position', and 'text-align' implied by list-style-position */ + display: inline-block; + margin-right: 1em; + text-align: end; + /* 'position' implied by list-style-position */ } </pre>
Received on Wednesday, 16 March 2011 17:08:34 UTC