我以为在html5中,您可以将块元素作为<a>
元素的孩子,如规格所理解:
https://www.w3.org/tr/html-markup/a.html#a
尽管HTML的先前版本仅限于A元素 包含措辞内容(从本质上讲,以前是什么 版本称为"内联"内容),a元素现在为 透明的;也就是说,现在允许A元素的实例 还包含流量内容(从本质上讲,在以前的版本中是什么 称为"块"内容) - 如果该实例的父元素 a元素的元素是允许包含流量的元素 内容。
但是现在,当我使用HTML验证器检查页面时,我发现了此错误消息:
错误:在这种情况下,不允许作为元素" a"的孩子元素" figcaption"。(抑制此子树的更多错误。)
代码如下:
<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>
有人可以向我解释错误在哪里,为什么?
您不应使用https://www.w3.org/tr/html-markup/,因为它已过时(这是2013年的工作组注释)。html5规范是:https://www.w3.org/tr/2014/rec-html5-20141028/
对于figcaption
元素,规格列表"可以使用此元素的上下文",wich是:
作为
figure
元素的第一个或最后一个孩子。
它说 child (不是 descendant ),因此它不能具有 a
元素作为父。
您可以将a
元素放在figure
元素周围(由于您引用的部分是可能的:a
现在可以包含流量内容):
<a href="#" title="foo">
<figure class="post">
<!-- … -->
</figure>
</a>
figurecaption只能具有图形元素作为其父:
https://developer.mozilla.org/en/docs/web/html/element/figcaption
因此,字幕不能是锚标签的直接孩子。