MudGuard: <UL> <LI> Verschachtelungsproblem UL in LI oder UL in UL ?

Beitrag lesen

Hi,

Um Threads zu erreichen für ein Forum brauche ich
<UL> und <LI>

In manche Tags darf man ja andere Tags nicht setzen.
z.B. in ein <span> ein <DIV>

UL ist wie folgt definiert:
<!ELEMENT UL - - (LI)+                 -- unordered list -->

UL darf also nur LI-Elemente enthalten. Mindestens eins, keine obere Grenze.

LI ist wie folgt definiert:
<!ELEMENT LI - O (%flow;)*             -- list item -->
LI darf also 0 bis unendlich viele %flow; enthalten.
%flow; ist eine "Abkürzung" für %block; | %inline;
(siehe <!ENTITY % flow "%block; | %inline;">)

%block; ist "Abkürzung" für
P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT |
      BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS

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

%list; wiederum ist "Abkürzung" für UL | OL

(siehe <!ENTITY % list "UL | OL">)

Also darf LI sowohl UL als auch OL enthalten.
Da (s.o.) UL kein UL enthalten darf, LI aber sehr wohl UL enthalten darf, ist Dein erster Code richtig.

(@selfdevs: kann das Zufall sein, daß diese Frage kam?)

oder soll ich alle <LI> einzeln per CSS definieren
wie sie aussehen sollen und dann den entsprechenden
margin-left  setzen?

Nein, wenn die Semantik eine Schachtelung ist, dann sollte diese Schachtelung auch in der HTML-Struktur auftauchen.

cu,
Andreas

--
Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/