Van*_*als 5 html anchor w3c-validation
我认为在 HTML5 中你可以将块元素作为子元素<a>元素的子元素,正如规范中所理解的:
https://www.w3.org/TR/html-markup/a.html#a
\n\n\n\n\n尽管以前版本的 HTML 将 a 元素限制为仅\n 包含短语内容(本质上,以前\n 版本中称为 \xe2\x80\x9cinline\xe2\x80\x9d 内容),但 a 元素现在\n n 透明;也就是说,a 元素的实例现在允许\n 还包含流内容(实质上,在以前的版本中\n 称为\xe2\x80\x9cblock\xe2\x80\x9d 内容)\xe2\x80 \x94如果 a 元素的该实例的父元素是允许包含流内容的元素。
\n
但现在当我使用 HTML 验证器检查我的页面时,我发现了以下错误消息:
\n\n\n\n\n错误:在此上下文中,元素 \xe2\x80\x9cfigcaption\xe2\x80\x9d 不允许作为元素 \xe2\x80\x9ca\xe2\x80\x9d 的子元素。(抑制该子树中的更多错误。)
\n
代码如下:
\n\n<figure class="post">\r\n <a href="#" title="foo">\r\n <figcaption class="articuloInfo ">\r\n <h3>FOO</h3>\r\n <p class="fecha">4/04/2014</p>\r\n <div class="descripcion">\r\n </div>\r\n </figcaption>\r\n <div class="imagen">\r\n <img src="foo.jpg" alt="foo">\r\n </div>\r\n </a>\r\n</figure>Run Code Online (Sandbox Code Playgroud)\r\n有人可以解释一下错误在哪里以及为什么吗?
\n您不应使用https://www.w3.org/TR/html-markup/,因为它\xe2\x80\x99s 已过时(它\xe2\x80\x99s是 2013 年的工作组说明)。HTML5规范为:https://www.w3.org/TR/2014/REC-html5-20141028/
\n\n对于figcaptionelement,规范列出了“可以使用该元素的上下文”,其中包括:
\n\n\n作为元素的第一个或最后一个子元素
\nfigure。
它表示child(不是后代),因此它可以\xe2\x80\x99t 有一个a元素作为父元素。
您可以将a元素放置在figure元素周围(这是可能的,因为您引用的部分:a现在可以包含流内容):
<a href="#" title="foo">\n <figure class="post">\n <!-- \xe2\x80\xa6 -->\n </figure>\n</a>\nRun Code Online (Sandbox Code Playgroud)\n