html - 我是否需要始终指定 HTML5 中的开始 <html> 标记?

标签 html

第一种形式:-

<!DOCTYPE html>
 <head>
     <title>Untitled</title>
     <meta charset="UTF-8"/>
     <link rel="stylesheet" href="" type="text/css"/>
 </head>
     <body>

     </body>
 </html>

第二种形式:-

<!DOCTYPE html>
 <html>
 <head>
     <title>Untitled</title>
     <meta charset="UTF-8"/>
     <link rel="stylesheet" href="" type="text/css"/>
 </head>
     <body>

     </body>
 </html>

据我所知,包括<!DOCTYPE html> (如果使用 HTML5)在 <html> 之前标签是强制性的,否则我可能会在我的网站中遇到行为问题。 (有人告诉我here)

在第一个中,没有 </html> 的开头。标签,但我已将其包含在第二个标签中。

我注意到一些网站使用其中一种肤色。可能是 <html>或非<html> !即使是 HTML 编辑器 Android 应用程序 (WebMaster) 也使用第一个(没有 <html> )!

我不明白,是<!DOCTYPE html><html> 完全相同,刚刚附加 !DOCTYPE ,或者两者都不同!

那么,哪一个是正确的呢?为什么这个是正确的?

最佳答案

Doctype 是强制性的,并且与 html 开始标记完全不同。

(Doctype 中包含 html,因为 XML 和 SGML doctype 必须指定根元素的标记名称,并且 HTML 5 Doctype 被设计为向后兼容所需的浏览器)。


htmlheadbody 元素的开始和结束标记是可选的。

例如,HTML 规范对 the html element 有这样的规定。 :

Tag omission in text/html:

  • An html element's start tag can be omitted if the first thing inside the html element is not a comment.
  • An html element's end tag can be omitted if the html element is not immediately followed by a comment.

您会发现 headbody(以及其他一些元素)也有类似的规则。

对于每个版本的 HTML 都是如此(但对于不允许省略任何标记的 XHTML 则不然)。

如果您想在其上包含属性,则只需包含开始标记。一般来说,说明文档所用的语言是一件好事,因此最佳实践是使用带有 lang 属性的显式 html 开始标记。

关于html - 我是否需要始终指定 HTML5 中的开始 <html> 标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46057582/

相关文章:

javascript - HTML5中id的比较

javascript - 使用 JavaScript 检查文本输入模式是否有效

javascript - 将输入附加到 HTML 表单而 JQuery 不起作用

html - 使用 Flexbox 在宽浏览器上实现 6 行,然后在移动宽度下实现 2 列、3 行

html - 无法在 div 元素中放置 iframe - HTML 和 CSS

java - Vaadin 添加 HTML 传单 map

php - 如何通过php从数据库中获取特定字段

javascript - 带有 Facebook 评论的自定义滚动条

html - 缩放下的 css 错误

javascript - <span> 在第二行之后换行