- From: Leif Arne Storset <lstorset@opera.com>
- Date: Mon, 24 Sep 2012 14:48:12 +0200
- To: "www-style@w3.org" <www-style@w3.org>
On Fri, 17 Aug 2012 17:52:13 +0200, Øyvind Stenhaug <oyvinds@opera.com>
wrote:
> Since I heard feedback on marker positioning was requested, I wrote down
> some comments. I really only looked at the positioning of 'outside'
> markers with respect to what can already be specified with CSS 2.1
> syntax.
>
> It's possible I have misunderstood some parts of the spec, e.g. with
> regards to the placeholder thing. If my assumptions are wrong, I think
> the text needs to be clarified.
>
> In general, the model seems quite simple, which is often a good thing.
> However, in some cases it seems all major implementations would need to
> change, which makes me wonder if there would be compat issues.
[snip]
> 3) Given the above, it seems basing the block axis position on the
> 'inside' position (= immediately before the list-item's '::before') will
> cause empty lines to appear more often than they do in Firefox/Opera.
> Though maybe this was intentional, since "spec is similar to what IE
> does, because that was sanest" as the IRC log for 2012-08-15 states.
I don't contest the sanity of IE, but I'd like to mention that we recently
[1] revamped our list implementation. Like Microsoft before us, we
examined CSS 2.1 and competing implementations. So we should be pretty
sane too (if I do say so myself :)) although our implementation does
highlight some problems with the spec, as this thread points out.
> 4) However, even so, the vertical alignment will be off if, for
> instance, the list-item's contents start with a block that has vertical
> padding and/or borders. Not even IE uses the hypothetical 'inside'
> position in this case.
It could be sensible to align the list marker with the 'first formatted
line' [2].
> 5) No special attention is given to floats. For instance, here the
> marker will overlap the float (and will be a long distance away from the
> text that starts the line):
>
> <!doctype html>
> <style>
> div {
> float: left;
> width: 100px;
> height: 100px;
> background: gray;
> margin-right: 40px;
> }
> </style>
> <div></div>
> <ul><li>list-item</li></ul>
>
> That doesn't happen in Firefox or Gecko, though it does in IE9 and Opera
> with Presto>=2.9 or thereabouts. Since changing, we've seen some issues
> popping up in the wild about this (e.g. on Wikipedia).
I'd like to reiterate this point. It breaks quite a few sites. Examples
from our bug tracker:
-
http://lifehacker.com/5864004/the-done-manifesto-lays-out-13-ground-rules-for-getting-to-done
- http://distrowatch.com/table.php?distribution=ubuntu
- http://en.wikipedia.org/w/index.php?title=Deventer&oldid=511633874
Perhaps a way forward is to place the marker positioning edge flush with
the first line box in the ancestor list item, rather than the border edge.
An editorial issue: reading the spec would be easier with a link from the
section 4 definition of 'outside' to section 7.1, which defines the
‘marker’ value for ‘position’.
[1] version 11.60, containing work done in June 2011
[2] http://www.w3.org/TR/CSS21/selector.html#first-line-pseudo
--
Leif Arne Storset
Layout Developer, Opera Software
Oslo, Norway
Received on Monday, 24 September 2012 12:48:45 UTC