Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
HTML zu schreiben ist in Ordnung, aber was, wenn etwas schiefgeht und Sie den Fehler im Code nicht finden können? Dieser Artikel wird Ihnen einige Werkzeuge vorstellen, die Ihnen dabei helfen können, Fehler in HTML zu finden und zu beheben.
| Grundlegende HTML-Kenntnisse, wie sie in Grundlegende HTML-Syntax behandelt werden. Semantik auf Textniveau wie Überschriften und Absätze und Listen. Strukturelles HTML. |
|
Beim Schreiben irgendeines Codes ist alles in Ordnung, bis zu diesem gefürchteten Moment, wenn ein Fehler auftritt – Sie haben etwas falsch gemacht, sodass Ihr Code entweder gar nicht funktioniert oder nicht ganz so, wie Sie es sich vorgestellt hatten. Zum Beispiel zeigt das Folgende einen Fehler, der auftritt, wenn versucht wird, ein einfaches Programm in der Sprache Rust zu kompilieren.
Hier ist die Fehlermeldung relativ leicht zu verstehen – "nicht abgeschlossenes Anführungszeichen in Zeichenkette". Wenn Sie sich die Liste ansehen, können Sie wahrscheinlich sehen, dass println!(Hello, world!"); logisch ein schließendes Anführungszeichen fehlen könnte. Allerdings können Fehlermeldungen schnell komplizierter werden und schwieriger zu interpretieren sein, je größer Programme werden, und sogar einfache Fälle können ein wenig einschüchternd wirken für jemanden, der nichts über Rust weiß.
Fehlersuche muss jedoch nicht angsteinflößend sein – der Schlüssel zur Gelassenheit beim Schreiben und Debuggen von Code liegt in der Vertrautheit mit der Sprache und den zugehörigen Werkzeugen.
HTML ist nicht so kompliziert zu verstehen wie Rust. HTML wird nicht vor dem Parsen in eine andere Form kompiliert (es wird interpretiert, nicht kompiliert). Und die Element-Syntax von HTML ist arguably viel einfacher zu verstehen als eine "echte Programmiersprache” wie Rust, JavaScript oder Python.
Die Art und Weise, wie Browser HTML parsen, ist viel nachsichtiger als wie die meisten Programmiersprachen geparst werden, was sowohl gut als auch schlecht ist.
Aber was bedeutet "nachsichtig"? Generell gibt es, wenn Sie etwas im Code falsch machen, zwei Hauptfehlerarten, auf die Sie stoßen werden:
HTML selbst leidet nicht unter Syntaxfehlern, da Browser es nachsichtig parsen, was bedeutet, dass die Seite immer noch angezeigt wird, auch wenn es Syntaxfehler im Quellcode gibt. Browser haben eingebaute Regeln, die festlegen, wie falsch geschriebene HTML-Markup zu interpretieren ist (oft als ungültiges oder schlecht-geformtes Markup bezeichnet), und ändern es automatisch in ein gültiges Markup.
Zum Beispiel enthält das folgende HTML-Snippet falsch verschachtelte Elemente:
Das schließende </strong>-Tag sollte vor dem schließenden </em>-Tag stehen, aber das ist nicht der Fall – es steht danach.
Wenn Sie dieses HTML in einen Browser laden und sich das gerenderte DOM ansehen, werden Sie sehen, dass die Verschachtelung vom Browser korrigiert wurde:
Warum ist das gut und schlecht? Nun, in diesem Fall hat der Browser das beabsichtigte Ergebnis geschaffen, aber wie Sie später sehen werden, ist das nicht immer der Fall. Sie erhalten immer etwas, das läuft, aber der Browser liegt nicht immer richtig, was zu Problemen führen kann. Es ist besser, von vornherein korrektes Markup zu schreiben.
Hinweis: HTML wird nachsichtig geparst, weil, als das Web zuerst erstellt wurde, entschieden wurde, dass es wichtiger ist, Inhalte zu veröffentlichen, als darauf zu achten, dass die Syntax absolut korrekt ist. Das Web wäre wahrscheinlich nicht so populär, wie es heute ist, wäre es von Anfang an strikter gewesen.
Wie finden Sie also Markup-Fehler? Später zeigen wir Ihnen, wie Sie Fehler in HTML mit einem Tool namens HTML-Validator finden, aber zuerst zeigen wir Ihnen, wie Sie Ihr HTML manuell mit einem DOM-Inspektor inspizieren können, und dann erkunden wir, welche Arten von Markup-Fehlern Sie suchen könnten und wie der Browser diese interpretieren könnte.
Alle modernen Browser haben eine Reihe von Entwicklerwerkzeugen (Devtools) eingebaut, die eine Reihe von Funktionen zum Untersuchen der Webseite bieten, die im aktuellen Tab geladen ist. Diese können Ihnen zeigen, welches HTML im Dokument gerendert wird, welches CSS auf jede DOM-Knoten angewendet wird, welcher JavaScript-Code auf der Seite läuft, und mehr. Sie erlauben Ihnen auch, den gerade laufenden Code zu bearbeiten und die Auswirkungen live auf der Seite zu sehen.
Sie können die Devtools in jedem Browser auf ähnliche Weise öffnen – sehen Sie sich Wie Sie die Devtools in Ihrem Browser öffnen an, um zu erfahren, wie.
Für diesen Artikel ist die einzige relevante Devtools-Funktion der DOM-Inspektor, der das derzeit gerenderte HTML-DOM anzeigt und es Ihnen ermöglicht, es zu bearbeiten. Schauen wir uns das nun an:
In diesem Abschnitt werden Sie einige Codes mit dem DOM-Inspektor untersuchen und sehen, wie der Browser häufige Markup-Fehler behandelt.
Speichern Sie zuerst den folgenden HTML-Dateieintrag unter dem Namen debug-example.html an einem Ort auf Ihrem lokalen Rechner. Diese Demo ist absichtlich mit einigen eingebauten Fehlern geschrieben, die wir erkunden werden.
Öffnen Sie es dann in einem Browser. Sie werden etwas wie folgt sehen:
Dies sieht sofort nicht besonders gut aus; schauen wir uns den Quellcode an, um zu sehen, ob wir herausfinden können, warum (nur der Inhalt des Bodies wird gezeigt):
Schauen wir uns die Probleme an:
Untersuchen wir nun das gerenderte DOM im Gegensatz zu dem Quellcode. Öffnen Sie dazu den DOM-Inspektor Ihres Browsers. Sie sehen eine Darstellung des gerenderten Markups:
Schauen Sie sich an, wie der Browser unsere HTML-Fehler zu korrigieren versucht hat (wir haben die Überprüfung in Firefox durchgeführt; andere moderne Browser sollten das gleiche Ergebnis liefern):
Die Absätze und Listenelemente haben schließende Tags bekommen.
Es ist nicht klar, wo das erste <strong>-Element geschlossen werden sollte, daher hat der Browser jedes separate Textfragment in ein eigenes <strong>-Element gewickelt, bis zum Ende des Dokuments!
Die falsche Verschachtelung wurde vom Browser wie folgt korrigiert:
Der Link mit dem fehlenden Anführungszeichen wurde komplett gelöscht. Der letzte Listeneintrag sieht so aus:
Sie können aus dem obigen Beispiel sehen, dass Sie wirklich sicherstellen möchten, dass Ihr HTML gut geformt ist! Aber wie? In einem kleinen Beispiel wie dem oben gezeigten ist es einfach, die Zeilen zu durchsuchen und die Fehler zu finden, aber was ist mit einem riesigen, komplexen HTML-Dokument?
Das Werkzeug für diese Aufgabe ist der Markup Validation Service (oder HTML-Validator), der vom W3C erstellt und gepflegt wird (was Sie im Webstandards-Modell kennengelernt haben). Der Validator nimmt ein HTML-Dokument als Eingabe, geht es durch und gibt Ihnen einen Bericht, um Ihnen mitzuteilen, was mit Ihrem HTML falsch ist.
Um das zu validierende HTML anzugeben, können Sie eine Webadresse angeben, eine HTML-Datei hochladen oder direkt etwas HTML-Code eingeben.
In dieser Aufgabe werden Sie den HTML-Validator ausprobieren. Sie werden unser Beispieldokument validieren und sehen, welche Ergebnisse zurückgegeben werden. Dieses Beispiel enthält das gleiche HTML, das Sie zuvor mit dem DOM-Inspektor untersucht haben.
Dies sollte Ihnen eine Liste von Fehlern und anderen Informationen liefern.
Die Fehlermeldungen sind in der Regel hilfreich, aber manchmal sind sie nicht so leicht zu verstehen. Mit ein wenig Übung können Sie lernen, diese zu interpretieren, um Ihren Code zu korrigieren. Gehen wir die Fehlermeldungen durch und sehen, was sie bedeuten. Sie werden sehen, dass jede Nachricht mit einer Zeilen- und Spaltennummer versehen ist, um Ihnen zu helfen, den Fehler leicht zu lokalisieren.
"End tag li implied, but there were open elements" (2 Instanzen): Diese Meldungen zeigen an, dass ein Element geöffnet ist, das geschlossen werden sollte. Der End-Tag ist impliziert, aber nicht tatsächlich vorhanden. Die Zeilen-/Spalteninformationen zeigen auf die erste Zeile nach der Zeile, in der der schließende Tag wirklich sein sollte, aber dies ist ein guter Anhaltspunkt, um zu sehen, was falsch ist.
"Unclosed element strong": Dies ist einfacher zu verstehen – ein <strong>-Element ist ungeschlossen, und die Zeilen-/Spalteninformationen verweisen direkt darauf, wo es ist.
"End tag strong violates nesting rules": Dies weist auf die falsch verschachtelten Elemente hin, und die Zeilen-/Spalteninformationen zeigen, wo sie sich befinden.
"End of file reached when inside an attribute value. Ignoring tag": Dies ist ziemlich kryptisch; es bezieht sich auf die Tatsache, dass ein Attributwert an einer Stelle nicht richtig geformt ist, möglicherweise nahe am Ende der Datei, da das Ende der Datei innerhalb des Attributwerts erscheint. Der Umstand, dass der Browser den Link nicht rendert, sollte uns einen guten Hinweis darauf geben, welches Element Schuld hat.
"End of file seen and there were open elements": Dies ist etwas zweideutig, aber im Wesentlichen bezieht es sich darauf, dass es offene Elemente gibt, die ordnungsgemäß geschlossen werden müssen. Die Liniennummern verweisen auf die letzten Zeilen der Datei, und diese Fehlermeldung wird mit einer Codezeile versehen, die auf ein Beispiel für ein offenes Element hinweist:
example: <a href="https://www.mozilla.org/>link to Mozilla homepage</a> ↩ </ul>↩ </body>↩</html>Hinweis: Ein Attribut, dem ein schließendes Anführungszeichen fehlt, kann zu einem offenen Element führen, da der Rest des Dokuments als Inhalt des Attributs interpretiert wird.
"Unclosed element ul": Dies ist nicht sehr hilfreich, da das <ul>-Element korrekt geschlossen ist. Dieser Fehler tritt auf, weil das <a>-Element nicht geschlossen ist, aufgrund des fehlenden schließenden Anführungszeichens.
Wenn Sie nicht herausfinden können, was jede Fehlermeldung bedeutet, machen Sie sich keine Sorgen. Eine gute Strategie ist es, ein paar Fehler gleichzeitig zu beheben und dann Ihr HTML nach jedem Satz von Korrekturen erneut zu validieren, um zu sehen, welche Fehler noch vorhanden sind. Manchmal wird durch das Beheben eines früheren Fehlers auch andere Fehlermeldungen beseitigt – mehrere Fehler können oft durch ein einziges Problem verursacht werden, in einem Dominoeffekt.
Sie werden wissen, dass alle Ihre Fehler behoben sind, wenn Sie ein schönes grünes Banner sehen, das Ihnen mitteilt, dass keine Fehler gemeldet werden. Zum Zeitpunkt des Schreibens hieß es: "Dokumentenüberprüfung abgeschlossen. Keine Fehler oder Warnungen anzuzeigen."
Hier haben wir es also, eine Einführung in die Fehlersuche in HTML, die Ihnen ein paar nützliche Fähigkeiten geben sollte, auf die Sie beim Debuggen von HTML, aber auch von CSS und JavaScript-Code später im Kurs zählen können. Dies markiert auch das Ende des Moduls Strukturierung von Inhalten mit HTML.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.