我很困惑。一位同事让我意识到以/>
结尾的标签,例如<br />
仍然可以在HTML5中使用。我认为只能使用<br>
- 样式。互联网上的所有“谈话”都是关于使用后者。
有人可以向我解释一下吗?这看起来很混乱,而且记录不清。
这引出了另一个问题:HTML 5是否被认为是格式良好的XML?
答案 0 :(得分:23)
否。反例:强>
这些是有效的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具有多个顶级元素&#34;:
<!doctype html><title>a</title><p>a</p>
HTML无效的有效XHTML:
CDATA
ENTITY
和其他感叹号构造,允许十亿笑:How does the billion laughs XML DoS attack work?
有效的HTML和XHTML但具有不同的含义:
£
,©
),XML只有5个(quot
,amp
,apos
,{{ 1}},lt
)。答案 1 :(得分:10)
有一个XML序列化,称为XHTML5。基本上,您可以自由使用HTML5(HTML序列化)或XHTML5(XML序列化)。规范草案称HTML5“是大多数作者建议的格式”,主要是出于人们为XHTML 1.1推荐text/html
的原因。
答案 2 :(得分:9)
您可以将自己的网页标记为有效的HTML5 和 XHTML5:http://www.w3.org/TR/html-polyglot/
根据HTML5规范,符合定义良好的约束集的多语言标记被解释为兼容,无论它们是作为HTML还是作为XHTML处理。
基本文件可能如下:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title></title>
</head>
<body>
</body>
</html>
当然,您必须遵循链接工作草案中概述的一些其他规则(例如,不要使用noscript
元素)。
答案 3 :(得分:3)
HTML5可以用或不用自闭斜杠写入;它旨在向后兼容HTML 4.01和XHTML 1.0代码,因此很容易将代码转换为有效的HTML5。 是一个名为XHTML5的XML序列化,但为了与IE浏览器向后兼容,建议不要使用它。从技术上讲,HTML5 不被认为是格式良好的XML。
答案 4 :(得分:1)
在任何情况下都不应该期望任何html文档(无论版本如何)都是“格式正确 xml ”
html!= xml。
这是一个不同的规范,有不同的建议(我故意避免在这里使用“规则”这个词)如何解释它。
HTML 5规范已经足够了“以这种方式做到这一点,但如果你不这样做,那就没关系了”,这对任何一个浏览器显示同样的事情都很奇怪。