HTML5是否有效?

Jac*_* B. 32 xhtml html5

我很迷惑.一位同事让我接触到标签结束的可能性/>,例如<br />仍然可以在HTML5中使用.我认为只能使用<br>风格.互联网上的所有"谈话"都是关于使用后者.

有人可以向我解释一下吗?这似乎非常令人困惑,而且记录不清.

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

Cir*_*四事件 27

不.反例:

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

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

    <p>First
    <p>Second
    
    Run Code Online (Sandbox Code Playgroud)

    请参阅:HTML中不需要P-end-tag(</ p>)

  2. script 逃避魔法:

    <script><a></script>
    
    Run Code Online (Sandbox Code Playgroud)

    请参阅:HTML中的CDATA是什么?

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

    <input type="text" disabled />
    
    Run Code Online (Sandbox Code Playgroud)

    请参阅:已禁用属性的正确值

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

    <div data-a=b></div>
    
    Run Code Online (Sandbox Code Playgroud)

    请参阅:在XHTML 1.0中,Strict do属性值是否需要用引号括起来?

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

    一些HTML元素是隐式创建的.例如html.这允许HTML具有"多个顶级元素":

    <!doctype html><title>a</title><p>a</p>
    
    Run Code Online (Sandbox Code Playgroud)

    请参阅:是否有必要编写HEAD,BODY和HTML标记?

无效HTML的有效XHTML:

  1. CDATA 内部带有无效标签的构造

  2. ENTITY和其他感叹号构造,允许十亿笑:十亿笑如何笑XML DoS攻击工作?

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

  1. HTML有数百命名字符引用(例如&pound;,&copy;),XML只有5( ,quot,amp,apos,).ltgt

  • 挑剔的是,HTML5 不允许多个顶级元素,只允许多个“顶级标签”。例如,可以省略 &lt;html&gt; 标签,但生成的文档仍然具有 html 元素,该元素将是唯一的顶级元素。 (2认同)

Mat*_*hen 10

它有一个XML序列化,称为XHTML5.基本上,您可以自由使用HTML5(HTML序列化)或XHTML5(XML序列化).规范草案称HTML5"是大多数作者建议的格式",主要是出于人们text/html对XHTML 1.1 推荐的相同原因.


uno*_*nor 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>
Run Code Online (Sandbox Code Playgroud)

当然,您必须遵循noscript链接工作草案中概述的一些其他规则(例如,不使用元素).


Not*_*tMe 5

在任何情况下,您都不应该期望任何 html 文档(无论版本如何)都是“格式良好的xml

html!=xml。

这是一个不同的规范,对于如何解释它有不同的建议(我在这里故意避免使用“规则”这个词)。

HTML 5 规范有足够多的“这样做,但不这样做也没关系”的声明,任何浏览器都显示相同的东西真是一个奇迹。

  • 根据定义,XHTML 兼容页面应该是格式良好的。格式良好的 XHTML 页面旨在使 Web 浏览器中的解析例程变得不那么复杂。然而,HTML 和 HTML5 不必是格式良好的,尽管如果需要的话它们可以是格式良好的。当然,由于编码人员草率,即使具有 XHTML DOCTYPE 的页面也可能格式不正确,因此这可能就是为什么建议使用 HTML5 规范而不是 XHTML5 的原因,因为无论如何,好的浏览器可能支持呈现编码错误的页面。 (9认同)