Re: [suggestion] Allow DIV inside any element

I created a test case [1][2] to check if this suggestion would be  
compatible with current browser implementations. I tested in Safari  
2.0.4, Webkit Nightly (Sat Apr 28 4:26:58 GMT 2007), Opera 9.1 (OSX),  
Firefox 2.0.3 (OSX), and IE6.

It appears as though the only cases where the rendering is consistent  
across all the browsers are "Div inside a ul around items" and "Div  
inside a dl around items".

Rendering of a div inside an element that requires strictly inline  
content such as an <a> or <span>, or rendering of a div inside an  
element that has implicit close tags such as a <p> was not reliable.

 From this I suggest, in accordance with the Degrade Gracefully  
design principal [3], that if this suggestion is to be considered  
that it must only be considered in the context of lists, and not  
arbitrary HTML elements.

[1] http://paste.css-standards.org/11014/view
[2] http://paste.css-standards.org/11014
[3] http://esw.w3.org/topic/HTML/ProposedDesignPrinciples#head- 
f3ceb325558784b71d74ca38ba513f985eebd330

- Elliott Sprehn

On Apr 29, 2007, at 1:19 PM, Marat Tanalin wrote:

>
> Hi to all HTML WG Members.
>
> I suggest to allow using DIV element inside any element (probably  
> except
> tables).
>
> It's necessary in order to make code more _semantic_. Let assume  
> that we
> have definition list:
>
> <dl>
> 	<dt>lorem</dt>
> 	<dd>ipsum</dd>
>
> 	<dt>dolor</dt>
> 	<dd>sit</dd>
> </dl>
>
> Currently, if we want to group each pair DT/DD (mainly to apply  
> styles to
> each DT/DD _pair_) we have to use own DL for each pair:
>
> <dl>
> 	<dt>lorem</dt>
> 	<dd>ipsum</dd>
> </dl>
>
> <dl>
> 	<dt>dolor</dt>
> 	<dd>sit</dd>
> </dl>
>
> But sequence of DLs where each one contains only one DT/DD pair is not
> semantic equivalent of one DL that contains several DT/DD pairs.
>
> Another example, unordered list:
>
> <ul>
> 	<li>lorem</li>
> 	<li>ipsum</li>
> 	<li>dolor</li>
> 	<li>sit</li>
> </ul>
>
> Currently, if we want to _visually_ present list as several lists  
> (just two
> cols or any another case), we have to _break_ one list to several
> _different_ lists:
>
> <ul>
> 	<li>lorem</li>
> 	<li>ipsum</li>
> </ul>
> <ul>
> 	<li>dolor</li>
> 	<li>sit</li>
> </ul>
>
> Again, sequence of ULs is not equivalent of one UL. It's clear.
>
> Making DIV possible to use inside any element solves this problem. For
> example in case of DL:
>
> <dl>
> 	<div>
> 		<dt>lorem</dt>
> 		<dd>ipsum</dd>
> 	</div>
> 	<div>
> 		<dt>dolor</dt>
> 		<dd>sit</dd>
> 	</div>
> </dl>
>
> ....or UL:
>
> <ul>
> 	<div>
> 		<li>lorem</li>
> 		<li>ipsum</li>
> 	</div>
> 	<div>
> 		<li>dolor</li>
> 		<li>sit</li>
> 	</div>
> </ul>
>
> One semantic list and several divisions inside -- _without breaking
> semantics_ unlike current approach.
>
> DIV is _common_ (with no any semantic sense) container element to  
> apply
> styles, so let's make it full truth since there is _no_ real  
> reasons to
> forbid DIVs inside DL, UL, etc. while it make sense to use DIVs  
> inside any
> element as it illustrated above.
>
> Thanks.
>
> --
> Marat Tanalin
>
>
>

Received on Sunday, 29 April 2007 19:01:54 UTC