为什么<hr>、<br>、<em>元素属于html中的流内容?
Why do <hr>, <br> and <em> elements belong to flow content in html?
我一直在阅读来自 MDN 的内容类别。在 Flow Content 部分,他们说:
Elements belonging to the flow content category typically contain text or embedded content.
因此,Flow 内容元素应该包含 某些内容。现在我们知道 hr
和 br
元素是空元素,也就是说它们不包含任何内容。所以问题是:
- 为什么
<hr>
和<br>
元素属于html中的流内容?
我也很困惑流量内容到底是什么?我一直在阅读有关此的内容,例如措辞和流内容之间的区别。据我所知,流内容似乎对应于块级元素,而短语内容似乎对应于内联元素。更准确地说,似乎 Flow Content 应该是概述整个文档的 结构内容 。例如,section
元素,div
元素,header
,footer
和article
等。流内容似乎是某种容器元素,或更高级别元素,如 p
元素,其中包含文档的较低级别组件(如文本、图像和超链接等)。
- 那为什么
<em>
、<b>
、<i>
等元素都包含在流内容中呢?
看流量内容元素列表,好像除了meta content elements
之外的每个元素都属于流量内容。
您在引用的部分中忽略了通常 一词。它们中的大多数确实包含文本,但并非所有都包含文本。其中一些,例如您指出的 <br>
和 <hr>
元素不包含任何内容(因此不是 typical 流内容元素)。
HTML5 规范 defines flow content 说:
Most elements that are used in the body of documents and applications are categorized as flow content.
流内容包含元数据、标题、分段元素、交互元素、措辞和嵌入内容。它不仅限于包含文本的元素。
我的看法是,流内容可以是 <body>
元素的 child;它是 body
.
中流动的内容
您可以在 <select>
元素旁边有一个 <div>
元素,而 <select>
元素又可以在 <br>
元素旁边,而 <br>
元素又可以在任何其他 [=42] 元素旁边=]流内容元素。您可以说这些元素 流动 彼此。使用 "a steady, continuous stream or supply of something" 的定义(牛津英语词典中的 the second noun),我们可以说这些是 HTML 元素的连续不间断流。
另一方面,<option>
、<optgroup>
和 <li>
元素不是流内容,同样不允许是 [=] 的 child 12=] 元素。 <hr>
元素旁边不能有 <optgroup>
元素(因为 <optgroup>
元素必须是 <select>
元素的 child)——我们可以因此说这些元素不随 <body>
.
的 children 流动
两个问题的答案是,任何属于短语元素的元素都必然被视为流内容,因为其内容模型为 "Flow content" 的元素也可以直接包含短语元素。
至于 <hr>
,它是流程元素而 不是 短语元素的原因是,根据其定义,
The hr
element represents a paragraph-level thematic break
因为它旨在用于划分一个部分中的段落,在 HTML 中由流元素 <p>
表示,所以 <hr>
是一个流是有意义的元素而不是短语元素。
两个元素的内容模型无关。此处相关的是其 parent 元素的内容模型。 MDN 给出的声明仅供参考,并不意味着 de jure;实际上,该声明没有出现在 W3C HTML5 或 WHATWG HTML.
中
我一直在阅读来自 MDN 的内容类别。在 Flow Content 部分,他们说:
Elements belonging to the flow content category typically contain text or embedded content.
因此,Flow 内容元素应该包含 某些内容。现在我们知道 hr
和 br
元素是空元素,也就是说它们不包含任何内容。所以问题是:
- 为什么
<hr>
和<br>
元素属于html中的流内容?
我也很困惑流量内容到底是什么?我一直在阅读有关此的内容,例如措辞和流内容之间的区别section
元素,div
元素,header
,footer
和article
等。流内容似乎是某种容器元素,或更高级别元素,如 p
元素,其中包含文档的较低级别组件(如文本、图像和超链接等)。
- 那为什么
<em>
、<b>
、<i>
等元素都包含在流内容中呢?
看流量内容元素列表,好像除了meta content elements
之外的每个元素都属于流量内容。
您在引用的部分中忽略了通常 一词。它们中的大多数确实包含文本,但并非所有都包含文本。其中一些,例如您指出的 <br>
和 <hr>
元素不包含任何内容(因此不是 typical 流内容元素)。
HTML5 规范 defines flow content 说:
Most elements that are used in the body of documents and applications are categorized as flow content.
流内容包含元数据、标题、分段元素、交互元素、措辞和嵌入内容。它不仅限于包含文本的元素。
我的看法是,流内容可以是 <body>
元素的 child;它是 body
.
您可以在 <select>
元素旁边有一个 <div>
元素,而 <select>
元素又可以在 <br>
元素旁边,而 <br>
元素又可以在任何其他 [=42] 元素旁边=]流内容元素。您可以说这些元素 流动 彼此。使用 "a steady, continuous stream or supply of something" 的定义(牛津英语词典中的 the second noun),我们可以说这些是 HTML 元素的连续不间断流。
另一方面,<option>
、<optgroup>
和 <li>
元素不是流内容,同样不允许是 [=] 的 child 12=] 元素。 <hr>
元素旁边不能有 <optgroup>
元素(因为 <optgroup>
元素必须是 <select>
元素的 child)——我们可以因此说这些元素不随 <body>
.
两个问题的答案是,任何属于短语元素的元素都必然被视为流内容,因为其内容模型为 "Flow content" 的元素也可以直接包含短语元素。
至于 <hr>
,它是流程元素而 不是 短语元素的原因是,根据其定义,
The
hr
element represents a paragraph-level thematic break
因为它旨在用于划分一个部分中的段落,在 HTML 中由流元素 <p>
表示,所以 <hr>
是一个流是有意义的元素而不是短语元素。
两个元素的内容模型无关。此处相关的是其 parent 元素的内容模型。 MDN 给出的声明仅供参考,并不意味着 de jure;实际上,该声明没有出现在 W3C HTML5 或 WHATWG HTML.
中