为什么使用DOCTYPE HTML

  发布时间:2010-10-29 22:11:16   作者:佚名   我要评论
不管是刚接触前端,还是你已经精通web前端开发的内容,你应该知道在你写html的时候需要定义文档类型
你知道如果没有它,浏览器在渲染页面的时候会使用怪异模式;你知道各个浏览器在怪异模式下对各个元素渲染是有差异的。所以你会写像这样的doctype:

复制代码
代码如下:

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

好在现在的各种web开发工具都足够强大,支持插入模板代码,因此你并不需要把这又长又臭的doctype一个个字母的敲出来。但是如果你受够了它,你也许可以尝试下面这个写法:

复制代码
代码如下:

<!DOCTYPE html>

哇哦,很简洁哦!好处显而易见:一、你可以轻松的写下这个doctype,而不用担心会写错;二、你大概省下了105字节字符,对于一个每日PV达到千万级的站点,它可以省下相当客观流量;三、它是向后兼容的,是的,html5的doctype就是这样写的,并且现代浏览器都认识它。

如果你跟我一样一直以为:没有指定dtd将会开启浏览器的怪异模式,这种说法是错的!正确的说法应该是没有定义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/

注意:你可以根本不需要根据你选择的doctype来验证你的页面,只要doctype标签存在就足以开启严格模式(标准模式)了。如果你对我说的这些还是感到怀疑,那么请前往http://www.quirksmode.org/css/quirksmode.html#link2了解你想知道的内容。我们只需要一小段JavaScript代码就可以得到答案,它就是:

复制代码
代码如下:

mode=document.compatMode;

这个代码可以用来判断,当前浏览器是处于怪异模式还是标准模式,该属性的兼容性毋庸置疑,如果你表示怀疑,可以查看http://www.quirksmode.org/dom/w3c_html.html#t11。你可以在你想测试的浏览器里访问:http://wanz.im/demo/doctype-test.html,便可看到结果了,据我所知,这样并没有激活怪异模式,即使是ie6下,如果你有什么新发现,欢迎给我留言。

相关文章

  • html doctype 作用介绍

    html doctype告诉浏览器使用什么样的html或xhtml规范来解析html文档,下面为大家详细介绍下,希望对大家有所帮助
    2014-01-08
  • IE下文本模式!DOCTYPE作用介绍

    文档类型(英文简称!DOCTYPE,英文全称DOCumentTYPE),它的目的是要告诉标准通用标记语言解析器,它应该使用什么样的文档类型定义(DTD)来解析文档
    2013-04-19
  • DOCTYPE 中xhtml 1.0和 html 4.01区别分析

    经常会用到DOCTYPE,常用的有xhtml 1.0和html 4.01,总结了下他们之间的区别
    2011-08-03
  • DOCTYPE元素详解 完整版

    本文系统的讲解DOCTYPE元素.同时查证了很多的资料.因为互联网上面的资料比较杂乱,所以经过收集整理我进行了重新定义.
    2011-02-24
  • DOCTYPE声明作用及用法详解

    很多朋友不知道DOCTYPE声明的作用,特为大家搜索整理了这篇文章,希望对需要的朋友有所帮助。
    2011-01-26
  • 被忽视的DOCTYPE说明分析

    自己在做web开发的时候,往往着重于界面设计及数据逻辑上的处理,而对一些细节不是特别注意。
    2010-02-11
  • HTML DOCTYPE的缩写

    写HTML代码的时候,第一行就要写DOCTYPE,而DOCTYPE一般都很长,大家也懒得去记,所以基本都是直接去复制以前写过的。不过今天了解到一种 DOCTYPE 的缩写.
    2009-07-24
  • HTML教程:DOCTYPE 的缩写

    写HTML代码的时候,第一行就要写DOCTYPE,而DOCTYPE一般都很长,大家也懒得去记,所以基本都是直接去复制以前写过的。不过今天了解到一种 DOCTYPE 的缩写,如果你的 DOCTYP
    2009-04-02
  • DOCTYPE类型详细介绍

    我们在HTML里面声明DOCTYPE一般会有以下几种: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD
    2008-10-17
  • HTML 版本声明 DOCTYPE 标签

    由于不是HTML标签,它只是一条浏览器指令,告诉浏览器编写页面所用的标记的版本,所以不需要成对出现
    2014-02-03

最新评论