是否存在任何浏览器问题,总是在html中折叠空标记。 因此,例如,可以像这样编写空头标记
<head></head>
但也可以像这样写
<head/>
第二种情况是否会导致任何场景出现问题?
由于
答案 0 :(得分:8)
自动关闭<script>
标签可能会严重破坏某些浏览器。我记得在我自动关闭一个脚本标签后,我的整个页面在IE中消失得无影无踪 - 一切都被读作脚本。
答案 1 :(得分:4)
假设您以XML格式提供XHTML,没有。 <head></head>
完全等同于<head />
。事实上,XML解析器甚至不会费心去告诉你你有哪一个。
(但是,有一个问题是<head>
代码必须包含<title>
。)
答案 2 :(得分:3)
您不应该在XHTML中使用最小化形式的头部。
http://www.w3.org/TR/xhtml1/#guidelines
关于空元素:
http://www.w3.org/TR/xhtml1/#C_3
给定一个元素的空实例 其内容模型不是EMPTY(for 例如,空标题或段落) 不要使用最小化的形式(例如 使用
<p> </p>
而非<p />
)。
换句话说,段落应始终在XHTML中关闭,在HTML中您只能使用开始标记。但是如果该元素应该具有内容,则应该正确地打开和关闭它。
例如,换行符有EMPTY内容模型,可以写成<br />
(同样适用于<hr />
),但不能写为<div />
。
答案 3 :(得分:2)
HTML 中不存在自动关闭代码。 /
始终被忽略,即<foo/>
和<foo>
是等效的。对于br
之类的元素,这没关系,因为您需要<br>
。但是,<script src="..." />
与<script src="...">
的含义相同,这是一个问题(如其他答案中所述)。 <head/>
不是问题,因为</head>
结束标记无论如何都是可选的。
另一方面,在 XML 中,自闭标签可以满足您的需求。但是,即使您拥有XHTML文档类型,您可能未使用XML 。除非您使用text/xml
,application/xml
或application/xhtml+xml
MIME类型(或任何其他XML MIME类型)发送文档,特别是如果您将其作为text/html
发送,则不会被视为XML。
答案 4 :(得分:0)
不是我知道的。过去一直困扰我的一个警告是自我关闭我的脚本标记:<script type="text/javascript" src="somefile.js" />
这会导致一些有趣的失败。
答案 5 :(得分:0)
我相信一些旧的浏览器存在缺乏空白的问题 - 特别是
<head/>
将被解释为“head /”标记,而<head />
将被解释为“head”标记,其空白属性“/”将被忽略。
这只会影响一些浏览器AFAIK。要么是有效的XHTML,要么只有旧的HTML浏览器可能会有问题。
事实上,the XHTML guidelines中将其记录为C.2
答案 6 :(得分:0)
通常,空元素可以写为自闭标记或开始和结束标记。
但是,HTML4 DTD指定文档HEAD必须包含TITLE元素。
“每个HTML文档必须在HEAD部分中有一个TITLE元素。”
http://www.w3.org/TR/1999/REC-html401-19991224/struct/global.html#h-7.4.1
答案 7 :(得分:0)
即使仅考虑浏览器问题(即无视有效性)并仅将问题缩小到head
标记,答案仍然是肯定的。
比较
<head/>
<object>Does this display?</object>
针对
<head></head>
<object>Does this display?</object>
每个用作任何版本的IE的text / html。
Does this display?
仅在后一个示例中显示。