MudGuard: Opera macht eine seltsame Darstellung eines "komplexen" Links

Beitrag lesen

Hi,

Nun, bezüglich blockelement in inline: Wenn ich jetzt statt den <div>'s <span>'s hinschreiben würde, und diese im CSS auf display: block; setzten würde, wäre es zwar höchstwahrscheinlich so, wie ich es gerne hätte, aber andererseits.... wäre es 100%ig-logisch auch nicht "korrektes HTML", da das Inline-element <span> ja im CSS zu einem Block-Element "umgewandelt" wurde, was wiederum kein korrekter Code ist.

Nein.

Es muß hier klar zwischen HTML und CSS unterschieden werden.

Bei HTML gibt es Verschachtelungsregeln, die festlegen, welche Elemente in welchen anderen Elementen benutzt werden dürfen.

Um nicht jedesmal alle Elemente einzeln aufzählen zu müssen, gibt es in der HTML 4.01-DTD die Parameter-Entities %inline; und %block;
Diese "definieren", was in HTML als inline- und was als block-Element gilt.

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

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

(wie man sieht, enthalten die beiden Parameter-Entities weitere Parameter-Entities, aber auch einige Elementnamen direkt)

Komplett aufgelöst ergibt sich für inline:
#PCDATA | TT | I | B | BIG | SMALL | EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE | ABBR | ACRONYM| A | IMG | OBJECT | BR | SCRIPT | MAP | Q | SUB | SUP | SPAN | BDO | INPUT | SELECT | TEXTAREA | LABEL | BUTTON

und für block:
P | H1|H2|H3|H4|H5|H6 | UL | OL | PRE | DL | DIV | NOSCRIPT | BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS

Wie diese Elemente letztendlich (per CSS) dargestellt werden, hat keinerlei Einfluß darauf, ob es sich um valides HTML handelt.
HTML beschreibt ja auch (im Idealfall) nur die Struktur des Dokumentes, nicht sein Aussehen.

Daß die inline-Elemente von HTML per Browservoreinstellung meist (hab jetzt keine Lust, das nachzuprüfen, daher vorsichtshalber "meist") auch die CSS-Eigenschaft display:inline besitzen und die block-Elemente aus HTML meist  auch eine der für CSS-blocklevel-Elemente notwendige display-Eigenschaft (block, table, list-item, run-in, compact), ist mehr oder weniger geplanter Zufall ;-)

cu,
Andreas

--
MudGuard? Siehe http://www.Mud-Guard.de/
Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.