<figure>元素只能包含没有图像的<figcaption>吗?</figcaption> </figure>

时间:2012-12-05 17:43:41

标签: html5 semantic-web w3c-validation semantic-markup figure

<figure>元素的语义是否只包含<figcaption>?它确实validate ...

<figure>
  <img src="example.jpg">
  <figcaption>Image and caption</figcaption>
</figure>

<figure>
  <figcaption>Caption only</figcaption>
</figure>

在这种情况下,它会对CSS样式产生影响:

figure figcaption { color: red; }

3 个答案:

答案 0 :(得分:7)

img元素中不需要figure,它恰好是常见的,大多数使用figcaption的示例也都有图像。

  

http://dev.w3.org/html5/spec/single-page.html#the-figure-element

     

因此<figure>元素可用于注释从主要内容引用的插图,图表,照片,代码清单等   该文件,但可以,而不影响的流程   文档,远离该主要内容,例如到了一边   页面,专用页面或附录。

     

http://dev.w3.org/html5/spec/single-page.html#the-figcaption-element

     

<figcaption>元素代表其余部分的标题或图例   figcaption元素的父图元素的内容, if   任何

请注意“ if any ”部分,这使我相信figcaption以外的内容可能不存在且仍然有效。然而,正如Alochi指出的那样,它暗示了元素的滥用,因为标题没有内容可以描述。

当前规范示例中的一个例子是非图像内容伴随着一个figcaption,所以我认为假设没有图像是完全没问题是公平的:

  

在这里,诗的一部分用数字标记。

<figure>
  <p>'Twas brillig, and the slithy toves<br>
  Did gyre and gimble in the wabe;<br>
  All mimsy were the borogoves,<br>
  And the mome raths outgrabe.</p>
  <figcaption>
    <cite>Jabberwocky</cite> (first verse).
    Lewis Carroll, 1832->  98
  </figcaption>
</figure>

答案 1 :(得分:4)

正如Michael Malinovskij所回答的那样,一个人物元素应该包含“流动内容”以及一个无花果。

The HTML5 spec has this to say about flow content

  

作为一般规则,内容模型允许任何流的元素   内容或短语内容应至少有一个子节点   是可触及的内容,没有隐藏的属性   指定。

     

然而,这个要求并不是一项艰难的要求,因为有很多要求   元素可以合法地为空的情况,例如当它   用作占位符,稍后将通过脚本填写,或者   当元素是模板的一部分并且在大多数页面上时   填写但在某些页面上不相关。

除了figcaption 之外没有任何其他内容是有效的,但是除非您打算稍后填写内容,否则它可能没有传达有用或正确的含义,其特征可能是不是语义

答案 2 :(得分:2)

图中允许的内容:

  • 一个figcaption元素,后面是流内容
  • 流程内容后跟可选的figcaption元素

(c) w3c/figure