[Bug 13128] Allow wrapping list items in DIV elements


Ian 'Hixie' Hickson <ian@hixie.ch> changed:

           What    |Removed                     |Added
             Status|REOPENED                    |RESOLVED
         Resolution|                            |WONTFIX

--- Comment #18 from Ian 'Hixie' Hickson <ian@hixie.ch> 2011-09-03 20:10:16 UTC ---
EDITOR'S RESPONSE: This is an Editor's Response to your comment. If you are
satisfied with this response, please change the state of this bug to CLOSED. If
you have additional information and would like the editor to reconsider, please
reopen this bug. If you would like to escalate the issue to the full HTML
Working Group, please add the TrackerRequest keyword to this bug, and suggest
title and text for the tracker issue; or you may create a tracker issue
yourself, if you are able to do so. For more details, see this document:

Status: Rejected
Change Description: no spec change
Rationale: This is a presentational issue and should be handled in CSS.

> Such old IE versions (6+7) has very little market share--less than 10%. So they
> cannot be a reason to abandon improvements in the HTML standard at all.
> Backward compatibility is a good thing, but it has its own limits---main limit
> is common sense.

They have 10 times more market share than Opera, and we consider Opera

> If a web-developer do care about semantics, then he always use closing tags.

That's an incorrect assumption.

> To make using divs inside lists clear, we can just clearly describe requirement
> in HTML spec like this:
> <<
> DIV element as direct child of list is allowed only if all items of the list
> has closing tags. Otherwise, markup will be ambiguous and should be considered
> invalid.
> >>
> That's all.

That would be incredibly confusing to authors. It would also be a layering
violation  the content model of a document should not depend on the syntax
used for it. We have been forced into that situation because of limitations of
XML already, and it's not pretty.

> Consider this example where list is multi-column (each div is separate column):
> <style>
> UL {display: table; }
> UL > DIV {display: table-cell; }
> </style>
> <ul>
>     <div>
>         <li>first</li>
>         <li>column</li>
>     </div>
>     <div>
>         <li>second</li>
>         <li>column</li>
>     </div>
> </ul>
> How do you achieve same effect with classes assigned to single list items?
> (Just in case: please do not mention CSS3 Multi-column Layout---such means are
> very limited in practice.)

CSS multi-column layout is exactly how you solve the problem of multiple
columns of layout.

However, to answer your question without CSS multicolumn layout:

   <style>.a { float: left; clear: left; width: 10em; }</style>
     <li class="a">first</li>
     <li class="a">colunm</li>
     <li class="b">second</li>
     <li class="b">column</li>

...so that's two ways of doing it in CSS now.

The point of splitting HTML markup and CSS styles is that you can then style
the same markup multiple ways. If you're using <div>s to get the style you want
then you can't do this. For example, take the markup you have above with the
divs: now how do you put the first three <li>s into the first column and the
last one into a second column, without changing the markup? The point is that
if what you're doing is stylistic, then it shouldn't affect the markup at all.

Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.

Received on Saturday, 3 September 2011 20:10:26 UTC