为什么使用<!DOCTYPE HTML>

来源:互联网 发布:淘宝 百度vip 编辑:程序博客网 时间:2024/05/12 17:00

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

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

哇哦,很简洁哦!好处显而易见:一、你可以轻松的写下这个doctype,而不用担心会写错;二、它是向后兼容的,是的,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代码就可以得到答案,它就是:

这个代码可以用来判断,当前浏览器是处于怪异模式还是标准模式,该属性的兼容性毋庸置疑,如果你表示怀疑,可以查看http://www.quirksmode.org/dom/w3c_html.html#t11。你可以在你想测试的浏览器里访问:http://wanz.im/demo/doctype-test.html


二,META标记的问题:

由于win7系统的默认浏览器是IE8,大多数普通网友重装系统后,不懂也懒得换浏览器,而各国产双核浏览器的兼容模式调用的就是系统默认浏览器的内核。随着win7系统的装机量不断升高,在逐渐淘汰IE6_7后,IE8的市场占有率可能还会坚持一段不短的时间。

针对IE8的兼容性优化,建议大家使用这个标签:

< meta http-equiv = "X-UA-Compatible" content = "IE=edge,chrome=1" />

这个标签的作用是让IE8模拟其他版本浏览器的渲染方式,IE=edge表示模拟最高版本IE的渲染方式。chrome=1是让IE8模拟chrome浏览器webkit内核的渲染方式,不过这个功能需要Google Chrome Frame(谷歌内嵌浏览器框架GCF)插件的支持,如果用户系统安装了这个插件,则调用chrome浏览器的内核来渲染网页。

GCF下载地址: http://code.google.com/intl/zh-CN/chrome/chromeframe/

不得不说,Google的这个外挂很给力。关于这个插件其他信息可以百度一下。


0 0
原创粉丝点击