【发布时间】:2011-12-19 18:42:39
【问题描述】:
例如:
<div id="myDiv" />
然后会做一些事情来使用 Javascript 填充这个 div。
这是有效的 HTML 吗?
【问题讨论】:
-
我会诚实地说不。我觉得只有某些标签可以在 xhtml 中自动关闭。其中包括
、、。如果它有效,那么请随意使用它。
标签: html
例如:
<div id="myDiv" />
然后会做一些事情来使用 Javascript 填充这个 div。
这是有效的 HTML 吗?
【问题讨论】:
标签: html
没有。 HTML 4.x 没有任何自闭标签的概念。
在 XHTML 中有效。
【讨论】:
Div 不是有效的自闭合标签。有一个空的 div 最好这样做:
<div id="myDiv"></div>
【讨论】:
不,它是有效的 XML(不是 HTML),据我所知,只有当文档使用 application/xml mimetype 发送时才会被接受。
但是,它可以与 XHTML 和 XHTML Doctype 声明一起使用。
【讨论】:
根据 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 语言实现,因此它们只是允许他们所说的做,而不求助于正式的语法。
【讨论】:
/usr/share/xml 和 /usr/share/sgml。
【讨论】:
我通过 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 正确填充它,我不确定。
【讨论】: