html - 为什么 <a href> 不允许作为 <figure> 的 child

标签 html validation syntax-error

这是 w3.org 未验证的一些代码:

<figure class="image">
    <img src="#" alt="#">
    <figcaption>
        <small>Cabinet Artwork</small>
        <br>
        Pretty in Pink in Mt Albert
    </figcaption>
    <a href="#" class="more"></a>
</figure>

验证器抛出一个错误,指出“在此上下文中元素 a 不允许作为元素图形的子元素”。然而,<figure>是 block 级元素和子元素的父元素 <a href> ,并且应该被允许在这里。那为什么是验证错误呢?

谢谢!

最佳答案

The spec says <figure> 的内容模型是:

Either: One figcaption element followed by flow content.
Or: Flow content followed by one figcaption element.
Or: Flow content.

您有规则 1 和规则 2 的组合(一个 figcaption之后是流内容),这是不允许的。

换句话说,<figcaption>必须是 <figure> 中的第一个或最后一个元素.它不能在中间。

关于html - 为什么 <a href> 不允许作为 <figure> 的 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34258014/

相关文章:

javascript - 将 Angular 1 Controller 范围方法作为回调传递给验证码库

html - body标签不显示(调整大小)可控

python - Django - 如何在多个表单上使用完全相同的 clean() 方法

python - 我不断收到异常的语法错误

php - 关于 :blank in src

jQuery 验证插件 : input vs. textarea

validation - xHTML 1.0 strict - 验证 iFrame

json - 如何使用 Golang 验证 JSON 输入?

c# - 奇怪的错误 - C# 应用程序

json - Uncaught SyntaxError : Unexpected token : in JSON response