W3C検証サービスを介してマークアップを検証しているときに、以下のエラーが発生しました
迷子の終了タグimg
コードは以下のようです
<a title="text" href="url">
<img class="text" src="imgSrc" alt="Text"></img>
</a>
どういう意味ですか ?どうすればそれを回避できますか?
ドキュメントがXHTMLに準拠している場合は、<img src="image.jpg"/>
ではなく<img>...</img>
でimg
タグを閉じる必要があります。
ドキュメントがHTML5に準拠している場合は、/>
の部分は必要ありません。<img src="image.jpg">
のみを使用してください
また、ドキュメントがXHTMLまたはHTML5に準拠している必要があるとしたら、これはHTMLページの最初の行、いわゆるdocument type definition
です。
<!DOCTYPE HTML>
for HTML5 and
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
for XHTML 1.0 Transitional
注:<!DOCTYPE>
宣言は必須であり(ページをHTMLバリデーターで検証する場合)、常に最初にする必要がありますHTMLドキュメント。
注:ドキュメントタイプの定義は、機能するWebページには技術的に必要ありませんが、常にコードに含めることをお勧めします。 Webページの作成方法を学ぶときは、常にコードにドキュメントタイプの定義を含めるようにしてください。
もっと読む:
</img>
タグには必要ないため、基本的には<img>
を削除する必要があります。
<img class="text" src="imgSrc" alt="Text">
または、参考のために、タグを「閉じる」ためのXHTMLの方法もあります。
<img class="text" src="imgSrc" alt="Text" />
そのため、「迷子の終了タグ...」は、終了タグが出現するコンテキストでは許可されないことを意味します。検証者の説明によると、「検証者は上記の要素の終了タグを見つけましたが、その要素は現在開いていません。これは多くの場合、編集中に削除された要素の残りの終了タグ、または暗黙的に閉じられた要素によって引き起こされます(許可されていない場所で使用されている要素に関連するエラーがある場合、これはほぼ確実に当てはまります)。後者の場合、元の問題を修正するとすぐにこのエラーは消えます。」
症状(エラーメッセージ文字列)から、HTMLシリアル化でHTML5に対して検証していると推測できます。これは、開始タグが要素を閉じるもの(「暗黙的に閉じられた要素」)としても扱われるため、img
要素に終了タグを使用できないことを意味します。
したがって、解決策は</img>
タグまたはXHTMLシリアル化でHTML5に対して検証します。後者はWebページでは実用的ではありませんが、何か他の目的でHTMLを使用している場合は、XMLコンテンツタイプで提供されるリソースを参照するURLで検証する必要があります。