<figcaption> 可以在没有父元素 <figure> 的情况下使用吗?

Can the <figcaption> be used without its parent <figure> element?

  1. 有谁知道 figcaption 元素是否可以在没有其父 figure 元素的情况下使用?

  2. 这样做的利弊是什么?有没有推荐的选项?

  3. 最后,你能用可靠资源的链接来支持你的答案吗?

the specification:

Contexts in which this element can be used:
As the first or last child of a figure element.

您的问题基本上是 “如果我将 HTML 元素放在不属于每个规范的上下文中会出现什么问题?”

好吧,这取决于你对“问题”的定义,显然最好的做法是永远不要让它发生并首先坚持“有效”HTML结构,但你的好奇心也是有效的,当然值得探索。

您可能暗示放错位置的标签将始终以某种方式被解释——在这种情况下 (figcaption) 甚至将作为块级元素保留在 DOM,所以即使没有它的标准 <figure> 父级,你仍然可以从 JS 设置样式和处理它。

在这种特殊情况下,您有可能永远不会 运行 陷入严重的问题。您甚至可以查阅规范并研究错误处理,并发现此类“不良”场景大多具有已定义的行为 WRT DOM 构造;例如,<body><figcaption>foo</figcaption> 将(可能)生成带有文本 'foo' 的 figcaption 元素,而 <body><table>bar</table> 将在正文元素中生成文本 'bar',后跟空 table 元素。问题是这些规则真的很复杂,尽管有这些规范,但跨用户代理的实现毕竟可能千差万别,所以在所有设备上测试您的应用程序后,您最终会不确定在您未测试的设备上可能会出现什么问题:

  • 也许某些全文索引机器人会在解析您的代码时崩溃并丢弃您的页面或其索引中的部分,
  • 也许某些辅助技术会在搜索不存在的图像时挂起,因为流浪 <figcaption> 让您的用户充满敌意 space,
  • 也许您会偶然发现 JavaScript 不知道如何切换其显示的库,您最终会使用内联显示而不是块显示,
  • 或者您将包括 CSS 设置绝对位置的库,这意味着相对图形包装器,因此您最终会在页面底部一个接一个地看到所有杂散的图形说明。

这些只是我想到的几个假设场景。关键是不给他们机会发生显然更好。