20

HTML5 元素的 'class' 属性可以包含换行符吗?它在规范中是否允许并且浏览器是否支持它?

我问是因为我有一些代码可以动态地将各种类插入到元素中,这造成了一条非常长的难以管理的行。通常我会使用变量构建类值,但我使用的 CMS 需要将模板条件标签与 HTML 内联定位。我不能使用变量或 PHP。

我在研究中发现,一些 HTML 标记属性必须是一行,但我无法发现类属性是否是其中之一。

有人知道吗?

4

2 回答 2

24

Per the HTML 4 spec, the class attribute is CDATA:

User agents should interpret attribute values as follows:

o Replace character entities with characters

o Ignore line feeds

o Replace each carriage return or tab with a single space.

so you're in good shape there.

The HTML5 spec describes a class as a set of space separated tokens, where a 'space' includes newlines.

So you should be good there, too.

于 2013-02-18T02:26:28.490 回答
5

HTML5 元素的属性可以[class]包含换行符吗?

是的。HTML5 规范说

该属性(如果指定)必须具有一个值,该值是一组以空格分隔的标记,表示该元素所属的各种类。

链接继续说:

组以空格分隔的标记是包含零个或多个单词(称为标记)由一个或多个空格字符分隔的字符串,其中单词由一个或多个字符的任何字符串组成,其中没有一个是空格字符

空格字符包括:

  • 空格 ( ' ')
  • 选项卡 ( \t)
  • 换行 ( \n)
  • 换页 ( \f)
  • 回车 ( \r)

就本规范而言,空格字符是 U+0020 SPACE、“tab”(U+0009)、“LF”(U+000A)、“FF”(U+000C)和“CR”(U +000D)。

您将添加到 UTF-8 文档的换行符是:

  • 换行符 ( \n)
  • 回车 ( \r)
  • 回车后紧跟换行符 ( \r\n)
于 2013-02-18T02:41:13.507 回答