可以使用自闭合 DIV 标签吗? [复制]

Posted

技术标签:

【中文标题】可以使用自闭合 DIV 标签吗? [复制]【英文标题】:Is it OK to use a self closing DIV tag? [duplicate] 【发布时间】:2011-12-19 18:42:39 【问题描述】:

可能重复:Are self-closing tags valid in html5?

例如:

<div id="myDiv" />

然后会做一些事情来使用 javascript 填充这个 div。

这是有效的 HTML 吗?

【问题讨论】:

我会诚实地说不。我觉得只有某些标签可以在 xhtml 中自动关闭。其中包括
、。如果它有效,那么请随意使用它。
【参考方案1】:

没有。 HTML 4.x 没有任何自闭标签的概念。

在 XHTML 中有效。

【讨论】:

这是正确的 - 同样,对于我们这些使用 AngularJS 或类似框架的人来说,自关闭 DIV 会破坏 IE8 中的应用程序。 那你叫什么img标签呢? 请注意使用 jquery,因为有时当您在某些地方有一个自动关闭标签时它不会正常工作。 @Stone - 你能给我举个例子/解释吗?我在任何地方都没有看到。 @StevenLinn img 元素称为“空元素”,或者在 HTML 4.x 术语中称为“空元素”。【参考方案2】:

Div 不是有效的自闭合标签。有一个空的 div 最好这样做:

<div id="myDiv"></div>

【讨论】:

【参考方案3】:

不,它是有效的 XML(不是 HTML),据我所知,只有当文档使用 application/xml mimetype 发送时才会被接受。

但是,它可以与 XHTML 和 XHTML Doctype 声明一起使用。

【讨论】:

【参考方案4】:

根据 XML 声明以及 XHTML 1.0 和 1.1 文档定义,这很好:当紧跟空结束开始标记 (/) 时,可以使用空结束标记 (&gt;),你的代码相当于&lt;div id="myDiv"&gt;&lt;/div&gt;

任何特定的消费者是否能够正确处理这一点完全是另一回事。

HTML 4.01 使用的 SGML 声明允许缩短标签,但它对空端标签有不同的语法;在那里你可以写&lt;div id="abc"/this is a non-empty div/。同样,对于浏览器的支持,里程可能会有所不同。 (我的钱是“无”。)

HTML 的未来版本(HTML5?如果该名称仍然存在的话)不再作为 SGML 语言实现,因此它们只是允许他们所说的做,而不求助于正式的语法。

【讨论】:

+1 了解更多详情。也许相应的链接会有所帮助^.^ @Howdy_McGee:检查 W3C,他们有 DTD 以及 HTML 4.01 的(多个版本的)SGML 声明,以及 XML 的(强制性)SGML 声明。在 Linux 上,查看 /usr/share/xml/usr/share/sgml【参考方案5】:

XHTML 中由浏览器实现的自关闭标签:

What are all the valid self-closing elements in XHTML (as implemented by the major browsers)?

html5中的自闭标签:

Are (non-void) self-closing tags valid in HTML5?

【讨论】:

【参考方案6】:

我通过 W3C validator 运行了这两个代码块。将代码复制并粘贴到“通过直接输入验证”选项卡下的输入中,亲自查看结果。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <title>title</title>
    <meta http-equiv="content-type" content="text/html;charset=UTF-8" >
  </head>
  <body><div id="Mydiv" /></body>
</html>

Doctype 为过渡 HTML 4.01 的代码块未通过验证过程。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
  <head>
    <title>Test</title>
    <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
  </head>
  <body><div id="Mydiv" /></body>
</html>

当我添加 XHTML 1.0 过渡文档类型,将元标记更改为自结束标记,并在 html xmlns 行中添加时,验证通过。

所以要回答您问题的前半部分,它是 XHTML 1.0 过渡文档类型下的有效 HTML。您是否可以使用 javascript 正确填充它,我不确定。

【讨论】:

以上是关于可以使用自闭合 DIV 标签吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

(非无效)自闭合标签在 HTML5 中有效吗?

HTML5 中的 SVG 标记可以省略自闭标签吗?

自闭合标签-主动闭合标签-meta-link标签

如何在 Oracle PLSQL 中获取自闭合 xml 标签?

如何在 Oracle PLSQL 中获取自闭合 xml 标签?

过滤html标签