【问题标题】:Is figcaption allowed to be a child of an <a> tag in HTML5?figcaption 是否允许成为 HTML5 中 <a> 标记的子项?
【发布时间】:2016-10-16 07:44:04
【问题描述】:

我认为在 HTML5 中,您可以将块元素作为 &lt;a&gt; 元素的子元素,正如从规范中所理解的那样:

https://www.w3.org/TR/html-markup/a.html#a

虽然以前的 HTML 版本将 a 元素限制为 包含短语内容(本质上,之前的 版本称为“内联”内容),a 元素现在是 透明;也就是说,现在允许 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>

谁能解释一下错误在哪里以及为什么?

【问题讨论】:

  • &lt;figcaption&gt;s 不是flow content
  • @Alohci 是什么意思?

标签: html anchor w3c-validation


【解决方案1】:

图形标题只能有图形元素作为其父元素:

https://developer.mozilla.org/en/docs/Web/HTML/Element/figcaption

因此图形标题不能是锚标记的直接子代。

【讨论】:

    【解决方案2】:

    您不应使用 https://www.w3.org/TR/html-markup/,因为它已过时(it’s 2013 年的工作组说明)。 HTML5 规范为:https://www.w3.org/TR/2014/REC-html5-20141028/

    对于figcaption element,规范列出了“可以使用此元素的上下文”,即:

    作为figure 元素的第一个或最后一个子元素。

    它说 child(不是 descendant),所以它不能有 a 元素作为父元素。

    您可以将a 元素放在figure 元素周围(这可能是因为您引用的部分:a 现在可以包含流内容):

    <a href="#" title="foo">
      <figure class="post">
        <!-- … -->
      </figure>
    </a>
    

    【讨论】:

    • 其实HTML5.0规范快照也已经过时了。当前的 W3C HTML 版本 HTML5.1(计划在今年秋天成为 Rec.)允许 figcaption anywhere in the figure。但是,当前的 WHATWG 生活标准版仍然要求 figcaption 必须只是 figure 的第一个或最后一个子项(不是“后代”),如 W3C HTML5.0。
    • @IlyaStreltsyn:关于 HTML 5.1 变化的好信息,谢谢! (但我不认为 HTML5 已经过时,因为它是 W3C 对 HTML 的最新推荐,因为 HTML 5.1 仍然是工作草案。)
    • 我也曾经认为,已发布的 W3C 规范快照是实际标准,而工作草案是未来的实验性东西。但在this topic 之后我不得不改变主意。似乎甚至不是工作草案,但最新的编辑草案是实施者感兴趣的规范版本。
    • 不过,figcaption 似乎可以有一个 a 元素作为子元素。有助于链接标题本身。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 2021-05-11
    • 2019-02-01
    相关资源
    最近更新 更多