# DOCTYPE标签、XHTML与HTML的区别

### HTML `<DOCTYPE>`

经常在html文档头部看到类似下面的声明，一直很疑惑，不清楚它的意思，也不清楚和html和xhtml有什么区别…

```html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
```

`<!DOCTYPE>` DocType Decaration声明头。这个标签告诉了浏览器文档使用了哪种HTML 或 XHTML规范

说起HTML规范，同样有一个疑惑在我这里——为什么没有HTML1、2、3,而直接跳到4了？经过度娘后发现，当时因为html并不是太标准，加之浏览器匮乏，所以一直没有被推广，HTML真正被推广是在HTML4.01的时候。HTML4.01也是现阶段最常用的版本，并且HTML4.01是在IE6开始兼容的，而HTML5实在IE9开始兼容的。为了保证兼容性，所以，大部分网页都是使用HTML4.01标准，而移动端可以使用HTML5标准。

### XHTML

那么什么是XHTML呢？XHTML中的X代表严格的意思。顾名思义，XHTML是HTML4.01的一个小类，一些人认为HTML4.01的标准版的语法规则太过随意（比如：可以随意使用大小写，属性值可以不加引号），所以又定制了XHTML，用来规范语法问题。所以，就此将HTML4.01分为了两个大类：HTML与XHTML

每种又分为三种，分别是strict、transitional、frameset，所以一共有6中HTML4.01

strict：语法上更为严格，比如：html中u标签表示下划线，但是html只表示文字的语义，不表示文字的样式，所以在此类中，是不可以使用 `<u>` 标签的

transtional：普通的

frameset：用于带有框架的文档

### 声明文档使用的规范

既然种类如此繁多，那么就要有一种方式来告诉浏览器，当前文档使用了哪一个标准：

注：DTD，DocType Decaration

HTML Strict DTD：

```
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
```

HTML Transitional DTD：

```
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd">
```

HTML Frameset DTD：

```
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "
http://www.w3.org/TR/html4/frameset.dtd">
```

XHTML Strict DTD：

```
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
```

XHTML Transitional DTD：

```
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
```

XHTML Frameset DTD：

```
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
```

这样我们再看 `<!DOCTYPE>` 就很清楚了。

HTML5的DOCTYPE就很简单了：

```
<!DOCTYPE html>
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://yangsx95.gitbook.io/notes/front-end/html/doctype-biao-qian-xhtml-yu-html-de-qu-bie.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
