Hallo Fuchs,
Das Inline-Element SPAN darf kein Block-Element wie DIV enthalten, und auch P darf kein DIV enthalten.
Die Browser müssen also aus diesem Murks irgendwie etwas machen, was sie darstellen können - und das können sie bspw. machen, in dem sie Elemente, die keine der nachfolgenden enthalten dürfen, vorher wieder schliessen.
Das war die einzig-nützliche Stelle
logisch, viel mehr hat Chris ja auch nicht geschrieben.
für die ich auch dankbar bin (meine erste Arbeit mit CSS, wohlgemerkt).
Das ist aber kein CSS-Fehler, sondern ein HTML-Fehler. Vom CSS-Standpunkt her ist das egal.
Der restliche Post besteht aus "dein Script ist kacke". Mein Script befindet sich im Frühstadium und ich überarbeite nicht alles gründlich, bevor ich nicht weiß, ob das dann im Endeffekt alles sinnlos ist.
Das ist aber eine ungünstige Strategie. Warum fängst du erst quick&dirty an, und nachher musst du nochmal drangehen und saubermachen?
Eine alternative Lösung? Fehlanzeige!
Ach?
"Das Inline-Element SPAN darf kein Block-Element wie DIV enthalten, und auch P darf kein DIV enthalten." [...] Beseitige die Fehler
Damit hat Chris den eigentlichen Fehler klar aufgezeigt. Was erwartest du noch? Dass er dir deinen Code korrigiert?
Bevor ich auf die einzelnen Fehler eingehe, möchte ich erst einmal einige Vergleichsbeispiele zeigen
Ja, es ist kein Geheimnis, dass auch die Webauftritte großer Unternehmen teilweise vor technischen, logischen und ergonomischen Fehlern strotzen. Das sollte man sich aber nicht als Vorbild nehmen (oder als Entschuldigung).
So, gehen wir jetzt auf meine Fehler ein:
Der erste Fehler ist eine unzureichende Definition für das Javascript. Sehr traurig, der Code ist von einer Hilfeseite über Java 1zu1 kopiert.
Java hat allerdings mit Javascript nichts zu tun.
Die folgenden ~5 Fehler sind von dem AD, für das ich keine Verantwortung trage, da funpic (ein kostenloser Webspaceanbieter, falls du es noch nie gehört hast) diesen Code automatisch einfügt.
Stimmt.
Also kann man die verbleibenden schonmal durch 14 teilen. Nun muss man auch bedenken, dass man für den gleichen Fehler 2 Meldungen erhält ("div darf nicht in p oder s" und "in p oder s darf kein div"). Übrig bleiben also die Definition, dass div-Tags nicht in p/span-tags und umgekehrt dürfen und eine mangelhafte tag-Deklaration, die aber noch später dabei gewesen wäre (s. weiter oben).
Übrig bleibt vor allem, dass du an mehreren Stellen fehlerhaftes HTML hast, indem du Blockelemente innerhalb von Inline-Elementen notierst. Am Ende des Quellcodes sehe ich sogar drei schließende Tags </p> hintereinander; die zugehörigen Start-Tags zu suchen, ist mir im Moment zu mühsam. Aber das heißt, du hast hier außerdem p-Elemente mehrfach verschachtelt - auch ein grober Fehler. Ein p-Element darf nur inline-Inhalt haben.
Das muss ein Browser also "irgendwie" korrigieren; wie die browserinterne Korrektur aussieht, kann von Browser zu Browser unterschiedlich sein. Auf eine solche fehlerhafte Struktur mit CSS aufzusetzen, ist schließlich reine Glückssache.
Daher ist der Hinweis "Beseitige erst die Fehler im HTML, dann sehen wir weiter" absolut angebracht.
Fazit2: Die Seite, die die Scriptfehler überprüft, ...
Du meinst den W3C-Validator? Der überprüft keine Scriptfehler. Der überprüft nur HTML auf Korrektheit, auf Wunsch auch CSS.
aber nicht dazu, dass man definieren kann, ob eine Seite "gut" oder "schlecht" ist.
Stimmt, über die Qualität sagt der Validator nichts aus. Ein HTML-Dokument kann vollkommen valide sein, aber trotzdem grausam. Validität ist aber eine Grundvoraussetzung.
Also, lieber ChrisB: Lerne bitte, wie man einen Beitrag vernünftig strukturiert und gut argumentiert, bevor du postest.
Du hast entweder den Sinn dieses Forums oder die Antwort von Chris nicht verstanden.
So long,
Martin
Denken ist wohl die schwerste Arbeit, die es gibt. Deshalb beschäftigen sich auch nur wenige damit.
(Henry Ford, amerikanischer Industriepionier)