html5为什么只需要写<!doctype html>? 有多少种Doctype文档类型?

HTML5只需要写<!doctype html>是因为HTML5不基于SGML,不需要对DTD进行引用,但仍需要doctype来规范浏览器的行为。而HTML4.01基于SGML,需要对DTD进行引用,才能告知浏览器文档所使用的文档类型。

Doctype文档类型是指用于标识HTML或XML文档类型的声明,它告诉浏览器文档所使用的规范或标准。根据不同的HTML版本,有不同的Doctype文档类型。以下是一些常见的Doctype文档类型:

  1. HTML 4.01 Strict:<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. HTML 4.01 Transitional:<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  3. HTML 4.01 Frameset:<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
  4. XHTML 1.0 Strict:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  5. XHTML 1.0 Transitional:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  6. XHTML 1.0 Frameset:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
  7. HTML5:<!DOCTYPE html>

这些Doctype文档类型中,HTML5的Doctype最为简单,只包含“<!doctype html>”,这是因为HTML5不再基于SGML,不需要对DTD进行引用。而HTML4.01及其之前的版本是基于SGML的,需要引用相应的DTD来告知浏览器文档所使用的规范或标准。