2014-06-09 5 views
8

Während der Validierung Markup durch W3C-Validator Service wurde dies unter FehlerStreu End-Tag img

Streu End-Tag img

-Code ist wie unten

<a title="text" href="url"> 
<img class="text" src="imgSrc" alt="Text"></img> 
</a> 

Was bedeutet dies? Wie können wir es vermeiden?

+1

Sie sollten immer angeben, welcher 'doctype' String (falls vorhanden) am Anfang der Seite erscheint, da dies den Validierungsmodus vorschreibt. –

Antwort

11

Wenn Ihr Dokument XHTML-konform ist, dann haben Sie img Tag mit <img src="image.jpg"/>, nicht mit <img>...</img> zu schließen.

Wenn Ihr Dokument HTML5-kompatibel ist, dann müssen Sie nicht die /> auszugsweise, nur <img src="image.jpg">

verwenden Und wenn Sie mich fragen, was bedeutet, dass Dokumente XHTML sein sollten oder HTML5-konform gestalten - dies ist die erste Zeile Ihres HTML-Seite, die so document type definition genannt:

<!DOCTYPE HTML> für HTML5 und

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> für XHTML 1.0 Transitional

HINWEIS: Die Deklaration <!DOCTYPE> ist obligatorisch (wenn Ihre Seiten mit einem HTML-Validator validiert werden sollen) und sollte immer die erste Sache in einem HTML-Dokument sein.

HINWEIS: Obwohl eine Dokumenttypdefinition für eine funktionierende Webseite technisch nicht erforderlich ist, sollten Sie sie immer in Ihren Code einfügen. Wenn Sie lernen, Webseiten zu erstellen, sollten Sie die Dokumenttypdefinition immer in Ihren Code aufnehmen.

More reading:

+1

' ...' ist gültiges XHTML, nur aus Kompatibilitätsgründen nicht für Webseiten empfohlen. Offensichtlich erscheint das Problem nicht bei der Validierung gegen XHTML. –

+0

Hallo @ bodi0 danke für deine Antwort. Es hat mir geholfen. –

2

Im Grunde bedeutet es, dass Sie die </img> entfernen sollten, da es nicht für den <img> Tag gebraucht wird:

<img class="text" src="imgSrc" alt="Text"> 

Alternativ nur zu Referenzzwecken, gibt es auch den xhml Weg von „Schließen“, um den Tag:

<img class="text" src="imgSrc" alt="Text" /> 
1

Als solche „Streu End-Tag ...“ bedeutet nur, dass ein End-Tag nicht in der erlaubt ist, Kontext, wo es erscheint. Wie die Erklärung des Validators sagt: "Der Validator hat ein End-Tag für das obige Element gefunden, aber dieses Element ist momentan nicht geöffnet. Dies wird oft durch ein übrig gebliebenes End-Tag eines Elements verursacht, das während der Bearbeitung entfernt wurde, oder durch ein implizit geschlossenes Element (wenn Sie einen Fehler haben, der sich auf ein Element bezieht, das nicht erlaubt ist, ist dies fast sicher der Fall). Im letzteren Fall verschwindet dieser Fehler, sobald Sie das ursprüngliche Problem behoben haben."

Aus den Symptomen (die Fehlermeldung Zeichenfolge) können wir ableiten, dass Sie HTML HTML in Serialisierung HTML validieren. Dies bedeutet, dass für ein Element img kein Ende-Tag erlaubt ist, da das Start-Tag so behandelt wird, dass es auch das Element schließt ("implizit geschlossenes Element").

Daher ist die Lösung, entweder das </img>-Tag zu entfernen oder HTML5 in XHTML-Serialisierung zu validieren. Letzteres ist für Webseiten nicht praktikabel, aber wenn Sie HTML für etwas anderes verwenden, sollten Sie die URL anhand einer Ressource validieren, die mit einem XML-Inhaltstyp geliefert wird.