在HTML中,应以哪种方式循环<;a/>;及<;h1/>;是嵌套的吗?

在HTML中,应以哪种方式循环<;a/>;及<;h1/>;是嵌套的吗?,html,xhtml,Html,Xhtml,嵌套 或 这是正确的答案: <h1><a href="www.example.com">Example!</a></h1> 在HTML 4.01和XHTML 1.1及更早版本中: h1可能包含a a不能包含h1 所以… 在HTML 5草稿中: h1可能包含a a可能包含一个h1(但仅当a位于某个允许h1的位置时-请参阅此答案上的注释) 两者都是如此,但浏览器支持可能会有所不同(这就是最前沿的生活)。HTML4,XHTML <h1&

嵌套


这是正确的答案:

<h1><a href="www.example.com">Example!</a></h1>

在HTML 4.01和XHTML 1.1及更早版本中:

  • h1
    可能包含
    a
  • a
    不能包含
    h1
所以

在HTML 5草稿中:

  • h1
    可能包含
    a
  • a
    可能包含一个
    h1
    (但仅当
    a
    位于某个允许
    h1
    的位置时-请参阅此答案上的注释)
两者都是如此,但浏览器支持可能会有所不同(这就是最前沿的生活)。

HTML4,XHTML

<h1><a href="">Text</a></h1>

HTML5


这在HTML5中是可以接受的,因为锚定标记被设置为“块级别”


如果
a
位于可以包含
h1
的元素内(因为
a
的内容模型是透明的;它继承其父级的内容模型:),则可以在(HTML5)“a可能包含
h1
”中找到有关块级和内联级标记的一些好信息@T.J.我认为这一点对于正确答案至关重要@大卫:你觉得对吗?艾莉森:我想这是一个重要的观点;我只是在补充大卫已经很好的答案。基本上,您不能将
h1
放在
a
span
span>a>h1
),因为
span
不能包含
h1
。但例如,您可以将
h1
放在
a
body
body>a>h1
)或
div
div>a>h1
)中,我怀疑这是大多数人想要的。通常,像锚定标记这样的内联元素不应该包含块级元素,除了在HTML5之前是无效的之外,至少在我看来,它并不“感觉”正确。似乎在锚定标签的状态上与@David Dorward/@t.J.Crowder存在一些分歧。@Alison:我不会说有分歧。:-)@Scott:
a
不是块级元素。好的,我会重新措辞。在HTML5中,你可以在
a
中包装块级元素,而在HTML4中,你不能包装块级元素。嘿,我想我明白了,但现在我得到了更多confused@Alison没问题,谢谢你的评论,然后用正确的答案结束问题:)我想我现在必须选择大卫的——它更完整了一点
<h1><a href="www.example.com">Example!</a></h1>
<h1><a href="">Text</a></h1>
<h1><a href="">Text</a></h1>
<a href=""><h1>Text</h1></a>