【问题标题】:Which elements can be nested inside the <dialog> element?<dialog> 元素中可以嵌套哪些元素?
【发布时间】:2014-12-17 08:43:51
【问题描述】:

TL;DR

哪些元素可以嵌套在&lt;dialog&gt;元素中?


当我查看thisthisthis 等示例时,它们都将&lt;h3&gt;&lt;p&gt;&lt;button&gt; 等元素作为&lt;dialog&gt; 元素的子节点。

但是,Visual Studio (2013) intellisense 仅列出以下元素:

  • 内容
  • dd
  • dt
  • 阴影
  • 模板

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
    <body>
        <dialog role="dialog">
            <content></content>
            <dd></dd>
            <dt></dt>
            <shadow></shadow>
            <template></template>
        </dialog>
    </body>
</html>

现在,如果我将 &lt;div&gt; 元素添加到 &lt;dialog&gt; 元素

<dialog role="dialog">
    <div></div>
</dialog>

Visual Studio 会抱怨:

元素“div”不能嵌套在元素“dialog”内。

div 元素根本没有特殊含义。它代表它的孩子。它可以与 class、lang 和 title 属性一起使用,以标记一组连续元素共有的语义。

我也查看了W3 docs,但无济于事。

所以我再问一遍:&lt;dialog&gt;元素里面可以嵌套哪些元素?

【问题讨论】:

    标签: html visual-studio-2013 dialog


    【解决方案1】:

    dialog 元素不属于任何已批准的规范(推荐)。最接近它的标准的是 HTML 5.1 草案,你引用它并说任何flow content 都是允许的。这意味着几乎可以放入文档正文中的任何内容,当然包括div。 WHATWG“HTML 生活标准”description of dialog 具有相同的内容模型。

    Visual Studio 显然对dialog 有自己的想法。

    在任何情况下,browser support(或缺少它)目前使dialog 相当无用,除非在实验和有限的环境中(例如设计为在特定浏览器上运行的应用程序)。

    【讨论】:

    • 你是对的。我假设 &lt;dialog&gt; 元素是 html 5 标准的一部分。虽然这个 一个针对 chrome 的内部网络应用程序,但我将暂时保留它,因为我讨厌看到 Visual Studio 向我抛出的所有错误。
    • dialog 元素在 HTML5 草案中,虽然被标记为“有风险”,但由于缺乏实现而在 2014 年 4 月 29 日的草案中被删除。它没有被抛弃,只是还不够成熟,无法“标准化”。
    猜你喜欢
    • 1970-01-01
    • 2012-09-20
    • 2021-11-08
    • 1970-01-01
    • 2014-12-25
    • 1970-01-01
    相关资源
    最近更新 更多