为什么做网页时,必须加!DOCTYPE html 声明?

很多人在写网页时,往往不考虑加<!DOCTYPE>标签,最后往往导致了奇奇怪怪的错误。

<!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签之前。

    <!DOCTYPE> 声明不是 HTML 标签;它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。

而因为各个浏览器的渲染方式的不同,如果不加此声明,则各个浏览器则会按自己的方式渲染网页(即所谓的怪异模式),这很有可能导致网页的排版错位。

在 HTML 4.01 中,<!DOCTYPE> 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容。

在 HTML 4.01 中有三种 <!DOCTYPE> 声明。在 HTML5 中只有一种:

所以通常现在无需加入繁琐的DTD了,你只需要加

声明就可以了。
事实上,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


发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据