在HTML5中,无花果标题可以作为标签的子项<a>吗?



我以为在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

因此,字幕不能是锚标签的直接孩子。

最新更新