转自:http://i.wanz.im/2010/05/28/why_doctype_html/
不管是刚接触前端,还是你已经“精通”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以下版本永远定在了怪异模式。关于两种模式,你需要知道以下几点:
在标准化之前写的页面是没有doctype的,因此没有doctype的页面是在怪异模式下渲染的。
反过来说,如果web开发人员加入的doctype,说明他知道他所要做的事情,大部分的doctype会开启严格模式(标准模式),页面也会按照标准来渲染。
任何新的或者未知的doctype都会开启严格模式(标准模式)。
每个浏览器都有自己的方式来激活怪异模式。你可以看看这个清单: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,便可看到结果了,据我所知,这样并没有激活怪异模式,即使是ie6下,如果你有什么新发现,欢迎给我留言。
分享到:
相关推荐
DOCTYPE>并不是HTML标签,它声明web浏览器关于页面使用哪个 HTML 版本进行编写的指令。 在 HTML 4.01 中,<!DOCTYPE> 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现...
博客文章: 关于HTML中的 <!DOCTYPE> 声明 文章配套示例HTML源代码 内容说明:DOCTYPE是Document Type(文档类型)的简写,要想制作符合标准的HTML页面,一个必不可少的关键组成部分就是DOCTYPE声明。
.println("<table align='center'><tr><th>图片</th><th>产品名称</th><th>产品价格</th><th colspan=2>操作</th></tr>"); try { DBaccess db = new DBaccess(); ArrayList<Goods> goods = db.Search...
NULL 博文链接:https://liuzidong.iteye.com/blog/850929
DOCTYPE html> <!-- 双标签:有头有尾,并且尾巴内会有一个关闭符:/ --> <!-- 该文档的根元素(根节点) --> <html lang="en"> <!-- 头部标签 --> <head> <!-- 单标签(也称空标签):有头没有尾,结尾会有一个...
DOCTYPE html> <html lang="zh"> <head><title>2022 Happy New Year! ! ! !</title></head> <body> <div class="firework-container" > <header> <h1 style = "text-align:center">2022 HappyNewYear! ! ! !</...
王者荣耀排位代练接单网站源码HTML带手机版.rar
DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>hello</title> </head> <body> <div id="app"> </div> ...
DOCTYPE> 声明位于文档中的最前面的位置,处于 <html> 标签之前。此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。如果不写,可能会造
doctype html> <html> <head> <meta charset="UTF-8"> <script type="text/javascript" src="Clock.js"></script> </head> <body> <canvas width='500' height='500' id='clock'></canvas> </body> ...
DOCTYPE html> <html> <head> <title>我的博客</title> <style> /* 在这里添加你的CSS样式 */ </style> </head> <body> <header> <h1>欢迎来到我的博客</h1> </header> <nav> <ul> <li><a...
DOCTYPE html> <html> <style type="text/css"> td{ text-align:center; } a{ text-decoration: none; } img{ width: 25px;height:25px; border-radius: 50%; align="left"; } </style> <head> ...
DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Grayscale Canvas Example</title> <script src="modernizr-2010.07.16dev.js"></script> </head> <body> <img src="logo.jpg" id="avatar...
Web服务器,apache-tomcat-8.0.50-windows-x64,绿色免安装版。
doctype html> <html> <head> <meta charset="utf-8"> <title>表格 </title> </head> <body> ....... </body> </html> <table border="1"> <tr> <td>品牌</td> <td>型号</td> <td>颜色</td> </tr> <tr> <td>华为</td...
用javascript写的,功能一般,纯属个人练习,供参考,见笑
DOCTYPE html> B <!DOCTYPE HTML PUBLIC> C <!DOCTYPE xhtml> D <!DOCTYPE html5> 2、以下全部属于块级标签的是 A <div><p><input><span><img> B <div><h1><p><img><dl> C <span><h1><p><img><dl> D <div>...
模拟全自动洗衣机程序程序报括洗涤漂洗脱水温控等功能,模拟全自动洗衣机程序
一款非常漂亮的基于HTML5+Canvas实现的放烟花特效,地面旋转,夜空3D烟花动画特效。
网页动态爱心代码,支持修改文字和更好音乐等操作。