HTML5 中的 span 标签可以包含哪些元素?

41

我一直是PHP中的CLI或Cron开发人员,现在我正在学习为什么我不喜欢在学校里做UI工作;) 我正在处理HTML5验证,并且我没有找到一个好奇的问题的答案。 我在我的主页上运行了W3C HTML5验证,我得到了一些关于一个div位于中不被允许的错误。我尝试将所有的在span中的

更改为

,但是收到几乎相同的错误。

http://www.w3schools.com/html5/tag_span.asp没有明确说明哪些元素允许在内,验证器的错误也没有

第85行,第69列:元素p没有在此上下文中作为元素span的子元素被允许(抑制此子树的进一步错误)。

2个问题:

1)内可以允许哪些元素(如果有的话)?

2)在哪里可以参考允许在其他元素内使用的元素?我已经谷歌搜索过了,但没有看到任何"W3C"的标记。

1个回答

64
只有内联元素可以包含在内联元素中。 span 是一个内联元素。因此,像 aimgsup 等标签可以放在 span 中,但是块级元素如 divp 不能放在其中。 更新 实际上,默认显示为内联的不同元素行为不同。一些“内联”元素可能允许块元素(例如 a),而另一些则不允许(如 span)。
如果您想了解 HTML 标签可以包含哪些内容,请参考 WHATWG 的 HTML 元素页面。您可以查看任何 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


10
这是真实的,但在HTML5中有一个例外,即<a>标签可以用块级元素(如<div>)来填充。 - insertusernamehere
3
请注意,仅当<a>标签的父元素可以包含块级元素时,<a>标签才能具有块级元素。@insertusernamehere - Evan Kennedy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接