2013-02-18 71 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
相关问题