2013-02-18 149 views
13

HTML5元素的'class'屬性是否包含換行符?在規格中是否允許,瀏覽器是否支持它?HTML'class'元素屬性是否可以包含換行符?

我問,因爲我有一些代碼,動態地插入到元素的各種類,這已經創建了一個很難管理的很長的一行。通常我會使用一個變量來構建類的值,但是我使用的CMS需要將模板條件標籤與HTML內聯放置。我不能使用變量或PHP。

我在我的研究中發現的一些HTML標籤屬性需要是單行,但我一直無法發現類屬性是否屬於這些屬性。

有沒有人知道這件事?

+0

請張貼代碼,它總是更好地顯示你正在使用snipp ets和測試頁面 – Shail 2013-02-18 02:27:00

+1

哪些屬性「屬性需要是單行」? – unor 2013-02-18 02:49:22

回答

18

HTML 4 spec,該class屬性是CDATA

用戶代理應該解釋屬性值如下:

Ø替換字符實體與字符

Ø忽略換行符

o用一個空格替換每個回車符或製表符。

讓你身體狀況良好。

HTML5 spec將類描述爲set of space separated tokens,其中「空格」包含換行符。

所以你應該在那裏也很好。

+0

謝謝Dancrumb。那麼,你認爲大多數瀏覽器會支持這個好處嗎? – 2013-02-18 02:36:53

+2

他們應該...... HTML4規範是從1999年 – Dancrumb 2013-02-18 02:37:53

+2

回覆:瀏覽器兼容性 - 碰巧,我最近碰到一個案例,在類屬性中使用換行符會阻止jQuery正確選擇基於類的CSS選擇器IE 8 - 就好像IE 8或jQuery-in-IE-8沒有看到換行符是空格,而是作爲類名的一部分。用空格替換換行符解決了問題。但令人沮喪的是,雖然我可以用我工作中的特定代碼(在替換換行符之前和之後檢查)來重現此問題,但在更簡單的測試用例中,似乎IE 8處理此問題,並且我無法從工作中共享我的代碼。 – 2014-04-18 18:28:12

4

HTML5元素的[class]屬性是否包含換行符?

是的。 The HTML5 spec says

該屬性(如果指定)必須具有代表該元素所屬的各個類的set of space-separated tokens的值。

的鏈接進行到說:

組空間分隔的標記的是含有零個或多個詞語的一個或多個space characters,字由分離(稱作令牌)的字符串任何一個或多個字符的字符串,其中沒有一個是space characters

和空格字符包括:

  • 空間(' '
  • 標籤(\t
  • 換行(\n
  • 形式進料(\f
  • 回車( \r

空格字符,對於本說明書的目的,是U + 0020 SPACE, 「標籤」(U + 0009), 「LF」(U + 000A), 「FF」(U + 000C)和「CR」(U + 000D)。

換行,你會添加到UTF-8的文件有:

  • 換行符(\n
  • 回車(\r
  • 回車後面緊跟一個換行符( \r\n
相關問題