可以使用自闭合 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 文档定义,这很好:当紧跟空结束开始标记 (/
) 时,可以使用空结束标记 (>
),你的代码相当于<div id="myDiv"></div>
。
任何特定的消费者是否能够正确处理这一点完全是另一回事。
HTML 4.01 使用的 SGML 声明允许缩短标签,但它对空端标签有不同的语法;在那里你可以写<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 标签吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Oracle PLSQL 中获取自闭合 xml 标签?