<!DOCTYPE> 声明不是 HTML 标签;它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。
而因为各个浏览器的渲染方式的不同,如果不加此声明,则各个浏览器则会按自己的方式渲染网页(即所谓的怪异模式),这很有可能导致网页的排版错位。
在 HTML 4.01 中,<!DOCTYPE> 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容。
在 HTML 4.01 中有三种 <!DOCTYPE> 声明。在 HTML5 中只有一种:
1 |
<!DOCTYPE html> |
所以通常现在无需加入繁琐的DTD了,你只需要加
1 |
<!DOCTYPE html> |
声明就可以了。
事实上,HTML 4.01的网页也可以使用此标签,并不会导致陷入浏览器的“怪异模式”。
没有定义doctype才会开启怪异模式,也就是说你只需要定义<!doctype html>就可以让浏览器在严格模式(标准模式)下渲染页面,而不需要指定某个类型dtd。让我们来回顾一下,所有的浏览器都需要两种模式:怪异模式和严格模式(也有人叫标准模式)。IE 6 for Windows/mac, Mozilla, Safari和Opera 都实现了这两种模式,但是IE 6以下版本永远定在了怪异模式。关于两种模式,你需要知道以下几点:
1. 在标准化之前写的页面是没有doctype的,因此没有doctype的页面是在怪异模式下渲染的。
2. 反过来说,如果web开发人员加入的doctype,说明他知道他所要做的事情,大部分的doctype会开启严格模式(标准模式),页面也会按照标准来渲染。
3. 任何新的或者未知的doctype都会开启严格模式(标准模式)。
4. 每个浏览器都有自己的方式来激活怪异模式。你可以看看这个清单:http://hsivonen.iki.fi/doctype/
最后,大家记得一定要加这个标签就行了。
部分内容来自:wanz.im