Re: [css3 lists] list-style-direction

Some fine-tuning (thanks to Anton Prowse to pointing out the problem - we
have to talk about the (item) element's parent element, as opposed to "the
list element"):

list-style-position:outside-parent would work like
list-style-position:outside, except that list-style-position:outside-parent
will apply *the direction of the parent element of the (list item)
element*to the marker box; [all the rest the same]

Aharon

On Sun, Nov 14, 2010 at 4:12 AM, Aharon (Vladimir) Lanin
<aharon@google.com>wrote:

> Discussion at the CSS WG meeting at TPAC 2010 (
> http://www.w3.org/2010/11/01-CSS-irc.html) resulted in a modified
> proposal, to which I subscribe:
>
> A new value for list-style-position: outside-parent (in addition to the
> existing inside|outside).
>
> list-style-position:outside-parent would work like
> list-style-position:outside, except that list-style-position:outside-parent
> will apply the list element's direction to the marker box;
> list-style-position:outside would, on the other hand, continue to use the
> item element's direction for the marker box. The marker box direction
> affects both the bidirectional ordering of the marker text and the
> location of the marker box, which is on the "start" side of its direction.
>
> It was also proposed that for list-style-position:outside-parent list
> items, the list item's text-align will apply only to the list item's
> content, not to its marker box, which will behave as if it had
> text-align:start. This is the current behavior for list-style-position:outside
> in WebKit. list-style-position:outside would, on the other hand, now be
> specified to apply the item's text-align to both the marker box and the item
> content, as is currently the case in IE, Opera and Firefox. This reason this
> was proposed is that with list items having text-align:start by default, the
> markers of lists containing opposite-direction items do not line up, even
> with ist-style-position:outside-parent, unless the WebKit approach is used.
>
> However, this reason would no longer apply if the default stylesheet could
> specify: li {list-style-position:outside-parent; text-align: match-parent}.
> For lists where all items have the same direction as the parent, such a
> change in the default stylesheet would have no visible effect at all, which
> is good. For lists where some items have the opposite direction, the default
> effect would be as follows (view in fixed-space font to get the intended
> effect):
>
> <ol dir=ltr style="text-align:start"><li>ltr text.</li><li>longer ltr
> text.</li><li dir=rtl>RTL TEXT.</li></ol>
> 1. ltr text.
> 2. longer ltr text.
> 3. .TXET LTR
>
> <ol dir=ltr style="text-align:end"><li>ltr text.</li><li>longer ltr
> text.</li><li dir=rtl>RTL TEXT.</li></ol>
>        1. ltr text.
> 2. longer ltr text.
>        3. .TXET LTR
>
> <ol dir=ltr style="text-align:center"><li>ltr text.</li><li>longer ltr
> text.</li><li dir=rtl>RTL TEXT.</li></ol>
>    1. ltr text.
> 2. longer ltr text.
>    3. .TXET LTR
>
> Is such a change to the default stylesheet ok by you?
>
> If so, do we need to get it into HTML5?
>
> Aharon
>
> On Sun, Oct 31, 2010 at 7:03 PM, Aharon (Vladimir) Lanin <
> aharon@google.com> wrote:
>
>> The following is a proposal for some bidi-related changes to CSS3 Lists<http://dev.w3.org/csswg/css3-lists/>
>> .
>>
>> 1. An additional list-related property: list-style-direction.
>>
>> The property would determine the direction of the list marker, when it is
>> a separate box, i.e. when list-item-position is "outside". The effects of
>> the marker's direction include:
>>
>>    - The location of the marker box, since it is on the "start" side of
>>    list-style-direction. For example, with list-item-direction:ltr, the marker
>>    box is to the left of the list item.
>>    - The bidirectional ordering of the marker text. For example, with list-item-direction:rtl,
>>    the marker text "1." is displayed visually as ".1".
>>
>> list-style-direction would take one of the following values:
>>
>>    - ltr
>>    - rtl
>>    - match-list
>>    - match-item
>>
>> For backward compatibility with CSS2, the default value would be
>> match-item.
>>
>> Note, however, that since the marker box is displayed in the margin, and
>> since a list by default only creates a margin on its start side, match-item
>> works poorly for  list items whose direction is opposite to the list's
>> direction. This is the reason why currently, most or all of the marker is
>> invisible for such items in all major browsers. Furthermore, it turns out
>> that in many or most use cases (at least in Hebrew, Arabic, and Persian),
>> the preferred look is to have all markers appear on the same side, even
>> though different items have different direction. Thus, we would really want
>> the default to be match-list, but can not make it so because of CSS2
>> behavior.
>>
>> As a workaround, we therefore propose that the default style sheet would
>> specify list-item-direction:match-list for all ol and ul elements.
>>
>> 2. Currently, there is no interoperability regarding whether text-align
>> applies to the list item marker when list-item-position is "outside". IE,
>> Firefox and Opera keep the marker with the item, i.e. apply the alignment to
>> the marker. WebKit, on the other hand, applies the alignment only to the
>> item, but keeps the marker location constant regardless of text-align. As a
>> result, there is a big difference between the way <ul style="text-align:end>
>> is displayed in WebKit and the other browsers.
>>
>> I bring this up in this context because the same issue would come up for
>> list-style-direction:match-list in combination with text-align:start as it
>> applies to opposite-direction items.
>>
>> IMHO, WebKit's approach here is more useful. When users want the marker
>> kept together with the item, they should use list-style-position:inside.
>> With list-style-position:outside, the markers should line up.
>>
>> Aharon
>>
>>
>

Received on Sunday, 14 November 2010 14:29:06 UTC