HTML5的html标签和DOCTYPE

10

根据我所阅读的,开始一个HTML5页面的正确方式是:

<!DOCTYPE html>
<html>

那些行里真的没有更多内容了吗?(我问这个是因为 Visual Studio 有更多的东西。)

(另外,我想知道 HTML5 真的是当前标准吗,或者我应该使用 XHTML5 或其他版本。)


2
Visual Studio 给你什么? - Graham Clark
5个回答

11
根据HTML living standardW3C规范,doctype是必需的前导声明,但出于遗留原因而需要。我引用以下内容:
  1. 一个字符串,它是与字符串“<!DOCTYPE”不区分大小写的ASCII匹配。
  2. 一个或多个空格字符。
  3. 一个字符串,它是与字符串“html”不区分大小写的ASCII匹配。
  4. 可选地,是一个DOCTYPE遗留字符串或已废弃的允许DOCTYPE字符串(下面有定义)。
  5. 零个或多个空格字符。
  6. U + 003E大于号字符(>)。
换句话说,大小写不敏感的<!DOCTYPE html>
对于有效文档,请使用<html></html>
(此外,我想知道HTML5是否真的是当前标准,或者我应该使用XHTML5或其他版本。)

在我看来,它不是当前的标准,因为它还没有完成。但是这篇文章很好地解释了现在使用它的10个理由。


请注意,尽管WhatWG和W3C现在正在处理不同的文档,但这部分仍然是相同的:http://dev.w3.org/html5/spec/single-page.html#the-doctype - Sebastian
@Sebastian 敏锐的观察,我应该更改引用吗? - ElderMael
请随意在您的回答中添加“我的”链接 - 两者都有可能是最好的解决方案... - Sebastian

4
大多数情况是这样的。但是HTML5规范对于 <html>元素说

建议作者在根html元素上指定lang属性,以指定文档的语言。这有助于语音合成工具确定要使用哪些发音,翻译工具确定要使用哪些规则等等。

因此,对于内容为美式英语的页面,最好是:
<!DOCTYPE html>
<html lang="en-us">

此外,如果您正在使用作为application/xhtml+xml提供的XHTML5,则需要添加命名空间,以及将语言属性的XML等效项使其变为:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-us" xml:lang="en-us">

3

没错,HTML5中不再需要复杂的文档类型声明。新标准更加简化,只有你所说的那一个。


不支持HTML5的浏览器如何处理该文档类型声明? - Chris Snow

2
根据HTML5草案,“DOCTYPE是必需的前置声明”。 推荐使用前置声明<! DOCTYPE html>,但也允许使用传统的文档类型作为替代,尽管除非文档是由不能输出较短字符串的系统生成,否则不应使用。 除此之外,唯一需要的部分是title元素,甚至在某些情况下,它也可以省略。 不需要<html>标签。
HTML5不是标准。 它甚至还不是W3C推荐(尚未)。 您应该使用什么取决于您正在做什么。 你认为自己使用的HTML版本并不重要。 重要的是您拥有的标记以及浏览器(和搜索引擎等)如何处理它。

1

是的,就我所知道的而言,那是正确的。


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