2014-06-09 90 views
8

在驗證通過W3C驗證服務的標記得到了下面這樣的錯誤流浪結束標記IMG

流浪結束標記IMG

代碼就像下面

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

這是什麼意思?我們如何避免它?

+1

您應該始終指定哪個'doctype'字符串(如果有)出現在頁面的開頭,因爲這決定了驗證模式。 –

回答

11

如果你的文件是符合XHTML,那麼你必須關閉img標籤與<img src="image.jpg"/>,不與<img>...</img>

如果你的文件是HTML5兼容,那麼你不需要/>部分,只使用<img src="image.jpg">

如果你不知道意味着文檔應該是XHTML或者HTML5兼容 - 這是對第一行的HTML頁面,所謂的document type definition

<!DOCTYPE HTML>對HTML5和

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

注意:<!DOCTYPE>聲明是強制性的(如果您希望您的頁面使用HTML驗證程序進行驗證),並且始終應該是HTML文檔中的第一件事。

注意:儘管文檔類型定義在技術上不是功能性網頁所必需的,但最好始終將其包含在代碼中。在學習構建網頁時,應養成在代碼中始終包含文檔類型定義的習慣。

更多閱讀:

+1

' ...'是有效的XHTML,由於兼容性原因,不建議用於網頁。很顯然,在針對XHTML進行驗證時不會出現問題。 –

+0

Hi @ bodi0感謝您的回答。它幫助了我。 –

2

基本上,這意味着你應該刪除</img>,因爲它不需要爲<img>標籤:

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

另外,僅供參考用途,這裏還有「關閉」標籤的XHML方式:

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

因此,「流浪結束標記...」只意味着一個結束標記沒有在允許的上下文出現的地方。正如驗證器的解釋所說:「Validator爲上述元素找到了一個結束標記,但該元素當前未打開。這通常是由編輯期間刪除的元素的剩餘結束標記引起的,或者是由隱式關閉的元素引起的(如果在不允許的情況下使用的元素有錯誤,則幾乎肯定是這種情況)。在後一種情況下,只要解決原始問題,該錯誤就會消失。「

從症狀(錯誤消息字符串)中,我們可以推斷出您正在HTML序列化中針對HTML5進行驗證。這意味着img元素不允許使用結束標記,因爲開始標記被視爲也關閉元素(「隱式關閉元素」)。

因此,解決方案是刪除</img>標記或在XHTML序列化中針對HTML5進行驗證。後者對於網頁並不實用,但如果您使用HTML作爲其他內容,則應該通過指向使用XML內容類型的資源的URL進行驗證。