39

因此,在我的大部分职业生涯中,我一直是 PHP 的 CLI 或 Cron 开发人员,现在我正在了解为什么我不喜欢在学校工作的 UI ;) 我正在处理 HTML5 验证,但我没有找到一个问题的答案出于好奇。我在我的主页上运行了 W3C HTML5 验证,我在 div 中遇到了几个错误<span>,这是不允许的。我尝试将所有<div>范围内的内容更改为 a<p>但收到几乎相同的错误。 http://www.w3schools.com/html5/tag_span.asp没有明确说明 a 中允许哪些元素<span>,验证器的错误也没有:

第 85 行,第 69 列:在此上下文中,元素 p 不允许作为元素 span 的子元素。(抑制来自该子树的更多错误。)

2个问题:

1) a 中允许哪些元素(如果有)<span>

2)我在哪里可以参考另一个允许哪些元素?我用谷歌搜索过,但没有看到上面有“W3C”标记的东西。

4

1 回答 1

63

内联元素中只能包含内联元素。span是一个内联元素。a因此,像, img,等这样的标签sup可以在一个范围内,但块级元素像divp不能。

更新

实际上,默认为内联显示的不同元素的行为不同。一些“内联”元素可能允许块元素(a例如),而另一些则不允许(例如span)。

如果您对 HTML 标记可能包含的内容感兴趣,您最官方的来源是关于 HTML 元素的 WHATWG 页面。您可以检查任何 HTML 元素并查看允许的内容(请参阅每个元素的“内容模型”):

http://www.whatwg.org/specs/web-apps/current-work/multipage/#auto-toc-4

这是 span 标签的定义,它表示只允许“短语”内容。

http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-span-element

于 2012-07-03T15:56:15.603 回答