2011-04-19 62 views

回答

2

W3C HTML 4.01 Strict Charset section

四字符實體REF erences 特別值得一提,因爲它們是 經常使用轉義特殊 字符:

* "&lt;" represents the < sign. 
* "&gt;" represents the > sign. 
* "&amp;" represents the & sign. 
* "&quot; represents the " mark. 

作者希望把「<」文本 字符應該使用「<」 (ASCII十進制60),以避免可能的 與標籤開頭的混淆 (開始標籤打開分隔符)。同樣, 作者應在文本,而不是「>」使用「>」(ASCII 十進制62) 避免與舊的用戶代理 錯誤地認爲這是一個標籤的 結束(標籤接近分隔符)的問題 時出現在引用屬性值 的值中。

作者應該使用「& amp;」 (ASCII 十進制38)而不是「&」,以避免 與 字符引用(實體引用 開放分隔符)的開始混淆。作者還應該使用「& amp;」使用 ;「在屬性值中自 允許字符引用 在CDATA屬性值內。

因爲它使用單詞「應」而不是「必須」,我想你可以跳過它,仍然驗證。

但是不要這樣做,因爲它有時會呈現奇怪。

我其實是有逃避一對情侶在這句話的我的複製粘貼的&符號來獲得SO呈現字符實體文字... ;-)

+0

此外,在URI屬性值,連字符號的節相關:http://www.w3.org/TR/html401/appendix/notes.html #hB.2.2。 – 2011-04-19 22:12:42

1

無論是在HTML 4中的錯誤還是錯誤取決於它在SGML中是否有錯誤。我無法檢查,因爲規範不公開。 HTML 4規範暗示它不是錯誤(«作者應該使用「&」»使用「應該」而不是「必須」)。

它在它HTML 4的XML序列化(XHTML)的誤差是在XML錯誤(« CharData :: = [^ < &] * - ([^ < &] * ']]>'[^ < &] *)»)

這不是HTML 5的HTML序列化錯誤。 («不是字符引用任何字符被消耗,並且不返回任何結果(這是不是一個錯誤,要麼)»。)

它在HTML 5的XML序列化的錯誤是在XML無效(« CharData: := [^ < &] * - ([^ < &] * ']]>'[^ < &] *)»)

1

是的,它是合法的。

它在HTML 4.01中是合法的,並且在HTML 4嚴格文檔類型中也是合法的,因爲它不是像FONT標記之類的已棄用功能之一。

這是不合法的任何版本的XHTML。原因是根據定義,XHTML必須符合XML標準,而未轉義的&符號在規範中(對於實體)具有特殊含義。

如果可能,最好使用XHTML,因爲它是更緊密,更現代的規範,更多信息可以在這裏找到http://en.wikipedia.org/wiki/XHTML。通常HTML用於傳統支持。

我知道HTML在很多地方仍然用於實際的原因,在這種情況下,儘管它實際上在您的文檔類型中是合法的,但它被認爲是使用轉義版本的最佳實踐。

如果您想要在主題上進行更多搜索,則「自身」符號稱爲「未轉義的&符號」。

相關問題