Go to Google Groups Home    comp.infosystems.www.authoring.stylesheets
Re: Transform a Span into a Div

Andy Dingley <ding...@codesmiths.com>

shapper wrote:
> Where can I find some information on nesting rules?

http://www.w3.org/TR/html4/sgml/dtd.html

Not the easiest thing to learn to read though!  (search for "DTD
introduction" or something)

> Can I include a <div> inside a <span>?

No.  Here's a small snippet of the DTD

<!--
    HTML has two basic content models:

        %inline;     character level elements and text strings
        %block;      block-like elements e.g. paragraphs and lists
-->
Actually there's a third one too %flow;, which comprises both %inline;
and %block; elements

<!-- %inline; covers inline or "text-level" elements -->
<!ENTITY % special
   "A | IMG | OBJECT | BR | SCRIPT | MAP | Q | SUB | SUP | SPAN | BDO">

<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; |
%formctrl;">

So we see from this that <span> is one member of %inline; and also of
%flow;  (see below)

<!ENTITY % block
     "P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT |
      BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS">

<!ENTITY % flow "%block; | %inline;">

We see here that <div> is one member of %block; and thus of %flow; but
NOT %inline;

<!ELEMENT SPAN - - (%inline;)*  >

<!ELEMENT DIV - - (%flow;)*  >

<span> can contain anything from %inline;
<div> can contain anything from %block; or %inline;

So <div> can contain <span>, but <span> can't contain <div>

Now see if you can read the DTD yourself and see where <p> fits into
all this.