W3C home > Mailing lists > Public > www-style@w3.org > June 2000

Re: Nested Lists and adjacent bullets

From: Matthew Brealey <webmaster@richinstyle.com>
Date: Tue, 20 Jun 2000 11:29:34 -0700
Message-ID: <394FB80E.3484@richinstyle.com>
To: www-style@w3.org
CC: Ian Hickson <py8ieh=mozilla@bath.ac.uk>
Ian Hickson wrote:
> So to be good publishers, what we want for the second case is:
> 
>    Frame construction:
> 
>       +<ol>--------------------------------------+
>       |       +<li>----------------------------+ |
>       | +---+ | .............................. | |
>       | | 1 | | : (anonymous empty inline)   : | |
>       | +---+ | :............................: | |
>       |       |                                | |
>       |       | +<ol>------------------------+ | |
>       |       | |       +<li>--------------+ | | |
>       |       | | +---+ | +<p>-----------+ | | | |
>       |       | | | 1 | | | bar          | | | | |
>       |       | | +---+ | +--------------+ | | | |
x>       |       | |       +------------------+ | | |
>       |       | +----------------------------+ | |
>       |       +--------------------------------+ |
>       +------------------------------------------+
> 
>    Rendering:
> 
>       1
> 
>         1 bar


I disagree very strongly. MSIE for Windows will render
<?l>
<li>
<?l>
<li>
</?l>
</?l>

in the manner described, which is very ugly IMHO (not to mention wrong):

1. 


    a.

Another interesting case is:

<style type="text/css">
/* Implied: OL {list-style: decimal} */
OL OL {list-style: lower-alpha /* Rests lsp: inside as well (in theory!)
*/}
</style>
<ol style="list-style-position: inside">
<li>
<ol>
<li>Hello
</ol>
</ol>
      +-------+
a     |1 Hello|
      +-------+ 

Or, even worse:

<style type="text/css">
UL OL {list-style: decimal /* Rests lsp: inside as well (in theory!) */}
</style>
<ul style="list-style-position: inside">
<li>
<ol>
<li>Hello
<li>Hello
</ol>
</ul>

      +-------+
1     |* Hello|
      +-------+ 

      +-------+
2     | Hello |
      +-------+

Also fun:

<ul style="list-style-position: inside">
<li>
<ul>
<li>Hello
</ul></ul>

       +---------+
       |* * Hello|
       +---------+

(yes, that's right: two marker glyphs)

[This all rests on:

'inside
The marker box is the first inline box in the principal block box, after
which the element's content flows.'

Incidentally I don't think this is right: are inside boxes really
'marker boxes' (in the precise sense of the term)? No.

More fundamentally, it is not the case that 'it is the first inline box
in the principal block box, after which the element's content flows.' 

This would, for example, cause the following behaviour:

<li>
<p>
Hello

<li>
1 

Hello

The statement instead should be:
 
'inside
The list marker is placed as the first inline box in the first formatted
line box in the principal block box, after which the element's content
flows (subject to an optional (conceptual) margin-right on the inline
box).'

This corrected definition explicates the (only) distinction between
display: list-item; list-style: inside and :before {content:
counter(counter)}; markers are associated with the first line box,
whereas :before is associated with the element.

And has anyone noticed this one before:
  P { margin-left: 12 em; }?

-----------------------------------
Please visit http://RichInStyle.com. Featuring:
MySite: customizable styles.         AlwaysWork style 
Browser bug table covering all CSS2 with links to descriptions.
Lists of > 1000 browser bugs         Websafe Colorizer 
CSS2, CSS1 and HTML4 tutorials.      CSS masterclass 
CSS2 test suite: 5000++ tests and 300+ test pages.
Received on Tuesday, 20 June 2000 06:23:07 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 27 April 2009 13:54:05 GMT