我很困惑。一位同事转而指出,以/>
结尾的标签仍可以在HTML5中使用,例如<br />
。我认为只能使用<br>
-style。所有互联网上的“谈话”都是关于使用后者。HTML5是否为有效的XML?
难道有人请给我解释一下吗?这似乎很混乱,记录不完整。
这引出了另一个问题:HTML 5是否被认为是格式良好的XML?
我很困惑。一位同事转而指出,以/>
结尾的标签仍可以在HTML5中使用,例如<br />
。我认为只能使用<br>
-style。所有互联网上的“谈话”都是关于使用后者。HTML5是否为有效的XML?
难道有人请给我解释一下吗?这似乎很混乱,记录不完整。
这引出了另一个问题:HTML 5是否被认为是格式良好的XML?
它有一个XML序列化,叫做XHTML5。基本上,您可以自由使用HTML5(HTML序列化)或XHTML5(XML序列化)。规范草案说HTML5“是为大多数作者推荐的格式”,主要是出于人们为XHTML 1.1推荐text/html
的相同原因。
可以使用或不使用自闭合斜线书写HTML5;它的目的是向后兼容HTML 4.01和XHTML 1.0代码,因此很容易将代码转换为有效的HTML5。有是称为XHTML5的XML序列化,但为了与IE浏览器的向后兼容性目的,不建议使用它。因此从技术上讲,HTML5是而不是被认为是格式良好的XML。
在任何条件下,你应该想到的任何HTML文档(无论版本)是 “良好形成XML”
HTML!= XML。
这是一个不同的规范,有不同的建议(我故意避免在这里使用“规则”一词)如何解释它。
HTML 5规范有足够的“这样做,但没关系,”如果你不这样做,“摆动声明,任何浏览器都显示相同的东西是一个奇迹。
符合XHTML标准的页面应该是定义良好的页面。格式良好的XHTML页面旨在使Web浏览器中的分析例程更加简单。但是,HTML和HTML5不一定非常好,尽管如果需要它们也可以。当然,即使是带有XHTML DOCTYPE的页面,也可能由于草率的编码器而不完整,所以这可能是为什么建议使用HTML5规范而不是XHTML5,因为好的浏览器可能支持渲染编码严重的页面。 – Kmeixner 2013-01-04 20:15:16
你可以标记您的网页有效HTML5 和 XHTML5:http://www.w3.org/TR/html-polyglot/
符合一个明确的约束集多语种标记被解释为兼容的,无论它们是否被处理成HTML或XHTML ,根据HTML5规范。
基本的文档可能看起来像:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title></title>
</head>
<body>
</body>
</html>
当然,你必须遵循一些额外的规则(比如不使用noscript
元素,例如),在链接的工作草案概述。
No.反例:
这些都是有效的HTML5,但无效XHTML5:
一些关闭标签可以被省略:
<p>First
<p>Second
script
逃生魔术:
<script><a></script>
属性没有值(布尔属性):
<input type="text" disabled />
属性没有引号,例如:
<div data-a=b></div>
参见: In XHTML 1.0 Strict do attribute values need to be surrounded with quotes?
隐式开放元素和多个顶级元素。
某些HTML元素是隐式创建的。例如。 html
。这使得HTML有 “多个顶级元素”:
<!doctype html><title>a</title><p>a</p>
有效的XHTML是无效的HTML:
CDATA
构造带内的无效标签
ENTITY
层其他感叹号结构,它允许十亿笑道:How does the billion laughs XML DoS attack work?
有效的HTML和XHTML,但具有不同的含义:
£
,©
),XML只有5个(quot
,amp
,apos
,lt
,gt
)。
的可能重复的[HTML 5:是
或
?](http://stackoverflow.com/questions/1946426/html-5-is-it-br-br-or-br) – 2011-04-05 21:09:15
@ GabyakaG.Petrioli不同意重复,因为这是更一般的,不限于'
'。 ;-) – 2016-09-18 17:12:55
不,但是你可以用一种有效的XML编写格式良好的HTML。反之亦然,如果你保持XML简单,它可以是有效的HTML。 – nawfal 2017-02-03 03:25:00