figcaption是否允许成为<a> tag in HTML5?

时间:2016-06-15 09:21:18

标签: html5 anchor w3c-validation

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>

有人能解释我错误的位置和原因吗?

2 个答案:

答案 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

因此,数字标题不能是锚标记的直接子项。