显然,HTML5 明确规定<br>
必须在元素的内容中使用标签,例如在下面的<p>
标签中:
<p> Line 1 <br> Line 2 </p>
但是,我认为 HTML 4.01 并非如此。因此,似乎也可以以<br>
这种方式使用标签来强制换行:
Line 1 <br> Line 2 <br> ..
有人可以根据这两个标准确认我在这里的真实或不真实吗?
br
元素的 HTML5 CR 描述说:“br 元素必须仅用于实际上是内容一部分的换行符,例如在诗歌或地址中。” 它还说:“不得使用 br 元素来分隔段落中的主题组”,并举例说明了将表单字段放在单独的行上。这是相当模糊的,但似乎只用于作为文本一部分的br
换行符,而不是仅用于格式化内容。
与文档正文中的其他元素相比,没有要求br
元素只能在“元素的内容内”使用。出于必要,正文中的任何内容都在body
元素内部(即使省略了<body>
and</body>
标记)。HTML5 不需要任何包装器,就像p
HTML 4.01 需要的那样。
以下是有效的 HTML5:
<!document html>
<title> </title>
SPLENDOR of ended day, floating and filling me!<br>
Hour prophetic—hour resuming the past!<br>
Inflating my throat—you, divine average!<br>
You, Earth and Life, till the last ray gleams, I sing.
请注意,HTML5 正在进行中。它很可能会从 CR 状态升级为 W3C 推荐标准,或“标准”,并进行细微的更改。但是,诸如关于“实际上是内容的一部分”的令人毛骨悚然的“语义”陈述很可能会被改变。
http://www.w3.org/TR/html4/struct/global.html#h-7.5.1说:
<!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- document body -->
%block
解析为:
<!ENTITY % block
"P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT |
BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS">
接着:
<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
<!ENTITY % list "UL | OL">
<!ENTITY % preformatted "PRE">
那里没有 BR 的迹象,因此在 HTML 4 中,您还需要在段落或其他合适的元素中放置换行符。
HTML 4.01 Transitional 是不同的……但是为什么要首先担心旧标准呢?制定新标准的目的是改进旧标准并修复没有意义的部分。
您可以在网页的任何位置使用 br 标签。
此处描述了允许的父元素:(短语内容)https://developer.mozilla.org/en-US/docs/Web/HTML/Content_categories?redirectlocale=en-US&redirectslug=HTML%2FContent_categories#Phrasing_content