Emptiness in CSS and in XML

Ian HicksonÊwrote to <www-style@w3.org> on 3 September 2002 in "Re:
CSS2.1 Various Inline-related Stuff"
(<mid:Pine.LNX.4.21.0209030203300.4549-100000@dhalsim.dreamhost.com>):

>    <foo></foo>
>
> ...is empty per XML -- it contains nothing
('none'). It is defined as > being the same as:
>
>    <foo/>
>
> If foo is a block, then it has no line box contents, per CSS.

I am with you so far.

> Now, using the DOM, add an empty text node (""). Per XML, I think the
> closest we can get to serialising that is:
>
>   <foo><![CDATA[]]></foo>

Still with you.

> This is not empty. If foo is a block, then it has a line box, per CSS,
> because it has inline content (an empty anonymous inline).

I disagree that an arbitrary DOM child counts as content, especially
concerning CSS.  For CSS, at least, content should mean either child
elements or character data.  If it needs mentioning, your example with
the empty marked section contains neither.

It seems like the list layout issue that you mentioned in "Nested Lists
and adjacent bullets" [1] warrants a distinction between "content: ''"
and "content: none".  Nevertheless, I would leave the matter by stating
that an empty string value for 'content' does not influence the computed
value of 'display'.  This statement makes no assertions regarding
emptiness.

[1]  Ian Hickson.  "Nested Lists and adjacent bullets".  13 June 2000. 
<mid:Pine.GSO.4.21.0006132139290.22830-100000@mary.bath.ac.uk> /
<http://lists.w3.org/Archives/Public/www-style/2000Jun/0008.html>.

-- 
Etan Wexler <mailto:ewexler@stickdog.com>
How many Goldfarbs can dance on the head of an declared content parameter?

Received on Thursday, 5 September 2002 17:32:57 UTC