I thought that in HTML5 you could have block elements as children of <a>
elements, as understood from the spec:
https://www.w3.org/TR/html-markup/a.html#a
的孩子虽然以前版本的HTML仅限制一个元素 包含措辞内容(基本上,以前的内容) 版本称为“内联”内容),现在是一个元素 透明;也就是说,现在允许a元素的实例 还包含流内容(基本上是以前版本中的内容) 称为“块”内容) - 如果该实例的父元素 a元素是允许包含流的元素 内容。
但是现在当我用HTML验证器检查我的页面时,我发现了以下错误消息:
错误:在此上下文中,元素“figcaption”不允许作为元素“a”的子元素。 (抑制此子树中的更多错误。)
代码如下:
<figure class="post">
<a href="#" title="foo">
<figcaption class="articuloInfo ">
<h3>FOO</h3>
<p class="fecha">4/04/2014</p>
<div class="descripcion">
</div>
</figcaption>
<div class="imagen">
<img src="foo.jpg" alt="foo">
</div>
</a>
</figure>
有人能解释我错误的位置和原因吗?
答案 0 :(得分:2)
您不应该使用https://www.w3.org/TR/html-markup/,因为它已过时(it’s 2013年的工作组备注)。 HTML5规范是:https://www.w3.org/TR/2014/REC-html5-20141028/
对于figcaption
element,规范列表&#34;可以使用此元素的上下文&#34;,它们是:
作为
figure
元素的第一个或最后一个孩子。
它说 child (不是后代),因此它不能将a
元素作为父元素。
您可以将a
元素放在figure
元素周围(这可能是因为您引用的部分:a
现在可以包含流内容):
<a href="#" title="foo">
<figure class="post">
<!-- … -->
</figure>
</a>
答案 1 :(得分:1)
一个figurecaption只能将figure元素作为其父元素:
https://developer.mozilla.org/en/docs/Web/HTML/Element/figcaption
因此,数字标题不能是锚标记的直接子项。