我總是看到聲明本身不使用HTML文檔中的&
,而是使用&
代替。在HTML 4.01嚴格文檔中字符「&」是否單獨違法?
所以我試圖把&
在標題和頁面的內容,但他們證實:
http://topics2look.com/code-examples/HTML/ampersand-by-itself-can-validate.html
在HTML是&
自身合法4.01嚴格的文件?
我總是看到聲明本身不使用HTML文檔中的&
,而是使用&
代替。在HTML 4.01嚴格文檔中字符「&」是否單獨違法?
所以我試圖把&
在標題和頁面的內容,但他們證實:
http://topics2look.com/code-examples/HTML/ampersand-by-itself-can-validate.html
在HTML是&
自身合法4.01嚴格的文件?
的W3C HTML 4.01 Strict Charset section說
四字符實體REF erences 特別值得一提,因爲它們是 經常使用轉義特殊 字符:
* "<" represents the < sign. * ">" represents the > sign. * "&" represents the & sign. * "" represents the " mark.
作者希望把「<」文本 字符應該使用「<」 (ASCII十進制60),以避免可能的 與標籤開頭的混淆 (開始標籤打開分隔符)。同樣, 作者應在文本,而不是「>」使用「>」(ASCII 十進制62) 避免與舊的用戶代理 錯誤地認爲這是一個標籤的 結束(標籤接近分隔符)的問題 時出現在引用屬性值 的值中。
作者應該使用「& amp;」 (ASCII 十進制38)而不是「&」,以避免 與 字符引用(實體引用 開放分隔符)的開始混淆。作者還應該使用「& amp;」使用 ;「在屬性值中自 允許字符引用 在CDATA屬性值內。
因爲它使用單詞「應」而不是「必須」,我想你可以跳過它,仍然驗證。
但是不要這樣做,因爲它有時會呈現奇怪。
我其實是有逃避一對情侶在這句話的我的複製粘貼的&符號來獲得SO呈現字符實體文字... ;-)
無論是在HTML 4中的錯誤還是錯誤取決於它在SGML中是否有錯誤。我無法檢查,因爲規範不公開。 HTML 4規範暗示它不是錯誤(«作者應該使用「&」»使用「應該」而不是「必須」)。
它在它HTML 4的XML序列化(XHTML)的誤差是在XML錯誤(« CharData :: = [^ < &] * - ([^ < &] * ']]>'[^ < &] *)»)
這不是HTML 5的HTML序列化錯誤。 («不是字符引用任何字符被消耗,並且不返回任何結果(這是不是一個錯誤,要麼)»。)
它在HTML 5的XML序列化的錯誤是在XML無效(« CharData: := [^ < &] * - ([^ < &] * ']]>'[^ < &] *)»)
是的,它是合法的。
它在HTML 4.01中是合法的,並且在HTML 4嚴格文檔類型中也是合法的,因爲它不是像FONT標記之類的已棄用功能之一。
這是不合法的任何版本的XHTML。原因是根據定義,XHTML必須符合XML標準,而未轉義的&符號在規範中(對於實體)具有特殊含義。
如果可能,最好使用XHTML,因爲它是更緊密,更現代的規範,更多信息可以在這裏找到http://en.wikipedia.org/wiki/XHTML。通常HTML用於傳統支持。
我知道HTML在很多地方仍然用於實際的原因,在這種情況下,儘管它實際上在您的文檔類型中是合法的,但它被認爲是使用轉義版本的最佳實踐。
如果您想要在主題上進行更多搜索,則「自身」符號稱爲「未轉義的&符號」。
我研究這個徹底,寫到這裏我的結論:http://mathiasbynens.be/notes/ambiguous-ampersands
我還創建了an online tool,你可以用它來檢查您的標記爲不結束模糊的&符號或者字符引用分號,這兩個都是無效的。 (無HTML驗證目前這是否正確。)
此外,在URI屬性值,連字符號的節相關:http://www.w3.org/TR/html401/appendix/notes.html #hB.2.2。 – 2011-04-19 22:12:42