为什么要使用<html>标签?

5

我看到的所有内容都说HTML代码需要它,但我的代码没有问题。我只使用了非常基本的HTML,没有CSS或javascript,如果这有区别的话。请问有人可以解释一下吗?


没有HTML标签的HTML会将您的浏览器置于怪异模式。在那里,事情处理方式会有所不同。 - agconti
请阅读此问题及其答案:https://dev59.com/Qm035IYBdhLWcg3wErzM - ShinTakezou
浏览器默认将您的代码视为 html - el Dude
4个回答

6
一切仍然正常,因为浏览器会自动插入它。你应该使用它,因为它可以使你的代码更清晰和标准化。
开发人员在查看你的代码时可能会感到困惑,因为他们会想知道 <html> 标签在哪里。
与任何标准一样,<html> 标签保证事情能够正常工作。目前,该标签是可以省略的,但出于安全起见,我仍然不建议这样做。这是来自 W3 规范的说明:

如果 html 元素内的第一个内容不是注释,则可以省略 html 元素的开始标记。

如果 html 元素后面紧跟着的不是注释,则可以省略 html 元素的结束标记。


4
确实有保证,这在规范中有说明:http://www.w3.org/TR/html5/syntax.html#optional-tags - Blender
@Blender 很好的调查!我更新了我的答案。 - m59

6
我看到的所有内容都表明HTML代码需要它,但是我的代码没有问题,即使没有它也可以正常工作。
这是因为你不需要它。根据HTML规范,你可以省略许多元素的起始标签(甚至是结束标签),包括htmlhead,这意味着像这样的文档实际上是完全有效的:
<!DOCTYPE html>

<title>Text to make me non-empty</title>
<p>Hello world!

浏览器会自动创建htmlhead元素,即使您不写出这些标签,因此如果需要,可以省略它们。请注意,不是所有的浏览器都严格按照规范执行,因此尽管这种行为理想,但某些浏览器可能无法正确解析您的HTML,并强制您更加明确地定义结构。

您可以省略标签。但是元素仍然存在。 - Alohci
@Alohci:我的错误,已修复。 - Blender

3

这是标准的一部分。它有助于告诉浏览器它是 HTML 而不是 XML 或其他类型的标记,并清楚地说明它是什么类型的文档。 http://www.w3schools.com/tags/tag_html.asp

浏览器只是友好地向您展示标签中包含的内容。


2
使用w3schools作为权威参考并不是最好的选择,真正的W3是更好的选择:http://dev.w3.org/html5/markup/html.html - mu is too short
1
不,html元素并不区分HTML和XML(或其他类型的文档)-其他因素才会起到作用。特别是Content-Type由Web浏览器使用,但DOCTYPE和XML声明(如果存在)甚至扩展名也可以发挥作用。这个答案的错误主张的一个微不足道的反例是XHTML是XML,并且XHTML定义了html元素。 - user2864740

0

这就是告诉各方阅读文档的HTML文档开始的地方。


除了一些例外情况(例如具有其他上下文因素的人类),这是不正确的。例如,当读取元素时,浏览器已经知道它是否将资源解析为XML(XHTML)或HTML。此外,即使文本是HTML,返回text/plain资源也不会导致HTML呈现。 - user2864740

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接