HTML5是否有效?

时间:2011-04-05 21:05:29

标签: html5 xhtml

我很困惑。一位同事让我意识到以/>结尾的标签,例如<br />仍然可以在HTML5中使用。我认为只能使用<br> - 样式。互联网上的所有“谈话”都是关于使用后者。

有人可以向我解释一下吗?这看起来很混乱,而且记录不清。

这引出了另一个问题:HTML 5是否被认为是格式良好的XML?

5 个答案:

答案 0 :(得分:23)

否。反例:

这些是有效的HTML5但无效的XHTML5:

  1. 可以省略一些结束标记:

    <p>First
    <p>Second
    

    请参阅:P-end-tag (</p>) is not needed in HTML

  2. script逃避魔法:

    <script><a></script>
    

    请参阅:What is CDATA in HTML?

  3. 没有值的属性(布尔属性):

    <input type="text" disabled />
    

    请参阅:Correct value for disabled attribute

  4. 没有引号的属性,例如:

    <div data-a=b></div>
    

    请参阅:In XHTML 1.0 Strict do attribute values need to be surrounded with quotes?

  5. 隐式开放元素和多个顶级元素。

    隐式创建了一些HTML元素。例如。 html。这允许HTML具有多个顶级元素&#34;:

    <!doctype html><title>a</title><p>a</p>
    

    请参阅:Is it necessary to write HEAD, BODY and HTML tags?

  6. HTML无效的有效XHTML:

    1. CDATA

    2. 中包含无效标签的构造
    3. ENTITY和其他感叹号构造,允许十亿笑:How does the billion laughs XML DoS attack work?

    4. 有效的HTML和XHTML但具有不同的含义:

      1. HTML有数百个命名字符引用(例如&pound;&copy;),XML只有5个(quotampapos,{{ 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规范已经足够了“以这种方式做到这一点,但如果你不这样做,那就没关系了”,这对任何一个浏览器显示同样的事情都很奇怪。