3

WHATWG、W3C 和 Mozilla 都按内容模型对 HTML 元素进行分类,即:

  • 元数据内容
  • 流量内容
  • 切片内容
  • 标题内容
  • 措辞内容
  • 嵌入内容
  • 互动内容
  • 表单相关内容
  • 透明内容模型
  • 其他内容模型

(参见W3C的HTML5 规范3.2.5 内容模型

但他们也将 HTML 元素列为另一个类别,如下所示:

  • 根元素
  • 文档元数据
  • 脚本
  • 部分
  • 分组内容
  • 文本级语义
  • 编辑
  • 嵌入内容
  • 表格数据
  • 形式
  • 互动元素

(参见HTML5 规范4. HTML的元素

此分组的其他来源可见于WHATWG 的规范WHATWG 开发者子域Mozilla,因此它是一种流行的标签约定。

除了“HTML 元素”之外,后一组是否有语义名称?也许是“功能”或“结构”列表或与盒子模型列表区分开来的东西?

4

1 回答 1

3

“类别”概念是辅助性的,用于缩短各种定义。例如,几个元素的内容模型是“流内容”,虽然类别名称有些晦涩,但这个概念仍然使定义比重复一长串元素更短,更容易理解。

“类别”一词可能具有误导性,因为一个元素可能属于多个类别。然而,“类”这个词虽然更具描述性,但可能会将该概念与与class属性相关的概念混淆。

引用的草案中的概念除了“类别”之外没有其他名称。在草稿之外,如果需要,您可以使用诸如“2013 年 8 月 6 日定义的 HTML5 CR 中定义的元素类别”之类的表达,或者诸如“HTML5 中的元素类别”之类的更宽松的短语。

将这些类别称为“功能性”、“结构性”或其他东西意味着对它们的“真实性质”采取立场,而且通常是错误的。这些类别是为不同的目的和不同的理由而形成的。如前所述,即使是“类别”一词也可能具有误导性,而草案实际上并未在定义“类别”的条款的标题中使用它。请注意,HTML5 CR 中的3.2.5.1 内容种类在提到一些类别之后说:“其他类别也用于特定目的,例如,表单控件使用多个类别来定义通用要求。有些元素有独特的要求,不适合任何特定的类别。”</p>

于 2013-09-16T05:06:06.110 回答