2012-05-05 21 views
31

由於顯而易見的原因,左側括號不能直接用於HTML文本。右尖括號的狀態並不十分清楚。它在我嘗試時可以正常工作,但是當然,瀏覽器對於不是嚴格有效的HTML的構造非常寬容。HTML中的直角支架

http://www.w3.org/TR/html4/charset.html#h-5.4似乎是說它是有效的,雖然可能不被舊版本的瀏覽器支持,但也具體提到引用的屬性值。 Is it necessary to html encode right angle brackets?也表示它是有效的,但再次具體談論引用的屬性值。

簡單的文本塊(<pre>元素的內容恰好就是我所看到的情況)的答案是什麼?它有什麼不同?

+0

無論如何,你將不得不逃避左括號。爲什麼不做最簡單和最安全的事情,也逃避了正確的括號? –

+0

由於我必須保留一段由程序輸出組成的文本,該文本恰好包含了右尖括號但未保留,這決定了維護任務是複製和粘貼還是複製,粘貼和搜索/替換。 – rwallace

回答

56

字符「>」在HTML,無論任何版本可以作爲諸如數據字符元素內容和屬性值。這是因爲在規範中沒有任何相反的說法。

它通常經常逃脫爲&gt;,這是有效的,但不是任何正式或技術原因所必需的。部分原因是人們認爲它需要與「<」字符需要轉義相同的方式,部分原因是爲了對稱:例如,編寫&lt;code&gt;可能看起來比&lt;code>更對稱。

字符「>」是更大的字符。在許多情況下,如HTML標記,用作一種類似的分隔符,用類似括號的方式,但在一些數學符號中使用的實際尖括號是相當不同的,例如「⟩」U + 27E9 。如果您需要在HTML文檔中包含尖括號,則需要考慮一些嚴重問題,但它們與字體(和語義)相關,而不涉及與標記重要字符的任何潛在衝突。

+5

使用>的一個原因是,您可以在編碼時快速區分HTML元素。某些編輯可能會將其標記爲無效,無論是否是。 – Sam

1

右邊括號在<pre>標記內或作爲元素內的文本是合法的。

以這種方式使用它們時沒有歧義,解析器對「理解」它們沒有任何問題。

就個人而言,我只是逃避這些,每當我需要使用它們,只是爲了匹配左尖括號...