HTML"class"元素属性是否包含换行符?

Luk*_*lin 16 html css

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

我问,因为我有一些代码可以动态地将各种类插入到元素中,这创建了一个很难管理的很长的行.通常我会使用变量构建类值,但我正在使用的CMS要求模板条件标记与HTML内联.我不能使用变量或PHP.

我在研究中发现,一些HTML标记属性需要是一行,但我无法发现类属性是否属于其中之一.

有谁知道这件事?

Dan*_*umb 22

根据HTML 4规范,该class属性是CDATA:

用户代理应解释属性值,如下所示:

o用字符替换字符实体

o忽略换行

o用一个空格替换每个回车或标签.

所以你在那里状态良好.

HTML5规范描述了一类作为组空间分隔的标记,其中"空间"包括换行.

所以你也应该在那里做得很好.

  • 他们应该...... HTML4规范来自1999年 (2认同)
  • Re:浏览器兼容性 - 事实上,我最近遇到了一个案例,其中在类属性中使用换行符阻止jQuery在IE 8中使用基于类的CSS选择器正确选择 - 就好像IE 8或jQuery-in-IE- 8没有将换行符视为空格,而是作为类名的一部分.用空格替换换行符解决了这个问题.但令人沮丧的是,虽然我可以使用我的特定代码来重现这一点(在替换换行符之前和之后检查),但在更简单的测试用例中,IE 8似乎处理得很好,我无法分享我的代码. (2认同)
  • 当大型企业放弃XP / IE 8时,世界将变得更加美好:) (2认同)

zzz*_*Bov 5

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

是的。HTML5 规范说

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

该链接继续说:

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

和空格字符包括:

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

空格字符,对于本说明书的目的,是U + 0020 SPACE, “标签”(U + 0009), “LF”(U + 000A), “FF”(U + 000C),和“CR”(U +000 天)。

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

  • 换行符 ( \n)
  • 回车 ( \r)
  • 回车后紧跟换行符 ( \r\n)