Andreas: Unterlisten korrekt definieren

Hallo!

Muss ich Unterlisten immer nach dem Schema

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

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

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

Was haltet ihr davon? Im Mozilla gings jedenfalls. Gibts Browser mit Problemen bei der zweiten Möglichkeit?

Gruß
Andreas

  1. n'abend,

    Was haltet ihr davon? Im Mozilla gings jedenfalls. Gibts Browser mit Problemen bei der zweiten Möglichkeit?

    Tidy meckert bei der unsauberen Version rum.
    weder html4 noch xhtml gestatten <li> als kind von <li>.
    Dass das korrekt angezeigt wird, liegt an den fehlerbehebenden Browsern (ohne diese Korrekturen, würden wohl 90% der webseiten kaum angezeigt werden).

    ich würde davon abraten unsauberes html zu schreiben, selbst wenn es nur eine Warning ist.

    weiterhin schönen abend...

    --
    wer braucht schon großbuchstaben?
    sh:( fo:# ch:# rl:° br:> n4:& ie:{ mo:} va:) de:] zu:} fl:{ ss:? ls:[ js:|
    1. OK, vilen Dank Euch beiden!

  2. 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)