Gunnar Bittersmann: Unterlisten korrekt definieren

Beitrag lesen

Hello out there!

oder kann ich mir das zweite <ul> auch sparen:

<ul>
  <li/>
  <li>
    <li/>
    <li/>
  </li>
</ul>

In HTML wäre das eine nichtverschachtelte Liste mit vier Items, da das End-Tag des 'li'-Elements optional ist:
<!ELEMENT UL - - (LI)+                 -- unordered list -->

Wenn XHTML als 'text/html' verarbeitet wird, sieht das der Tag-Soup-Parser genauso.

Das letzte '</li>' ist ein Fehler, da das letzte 'li'-Element bereits geschlossen war.

Und nein, das Start-Tag des 'ul'-Elements ist nicht optional:
<!ELEMENT UL - - (LI)+                 -- unordered list -->

In XHTML gibt es keine optionalen Tags:

<!ENTITY % lists "ul | ol | dl | menu | dir">  
<!ENTITY % block  
    "p | %heading; | div | %lists; | %blocktext; | isindex |fieldset | table">  
<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">  
<!ELEMENT li %Flow;>

'li' darf 'ul' enthalten, aber keine 'li' (auch '%inline;' und %misc;' führen nicht zu 'li').

Was haltet ihr davon?

Gar nichts.

Gibts Browser mit Problemen bei der zweiten Möglichkeit?

Invalider Quelltext ist immer problematisch.

See ya up the road,
Gunnar

--
“Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)