从Doctype说起,浏览器模式

随意打开任何一个网站的源码,基本都会看到源码的头部有如下标识:

<!DOCTYPE....dtd>

前端工程师们对此并不陌生,因为我们用编辑器编写HTML文件时一般都会在代码最顶部写上这么一句,当然更多时候编辑器会自动帮我们生成。但是,很多前端们并不是很了解这句话的意思,这也是我写这篇的原因,顺便也帮自己整理一下

DOCTYPE 是什么?为什么要使用?

DOCTYPE之前先介绍一个概念

DTD(document type definition,文档类型定义)

DTD是用来定义XML或HTML的文件类型的一系列语法规则,可用作内部doctype声明,也可用作外部引用声明,我们所熟悉的HTML文件的代码顶部就是DTD作为外部文档声明。
而为什么要使用DTD,是因为HTML有许多版本,为了让浏览器能够正确的解析和渲染网页,我们需要在HTML文件顶部声明该文档是由哪一个版本的HTML规范来编写的。

浏览器模式有哪些?

浏览器模式有以下两种:

  • 标准模式(standards mode)
  • 怪异模式(quirks mode)

标准模式里,浏览器按照规范解析渲染页面;而在怪异模式里,浏览器以一种老式的或者模拟老式浏览器的方式渲染页面。两种模式的主要区别如下所示:

  • 对CSS IE盒模型的缺陷处理,IE6前盒模型的宽高算法与CSS规范指定冲突,IE6之后标准模式下采用符合CSS规范的算法,而怪异模式下仍旧使用先前不规范的算法
  • 某些行内元素的垂直对齐
  • 对表格内部字体样式的处理,标准模式下字体样式会被继承进表格内部,但在怪异模式下字体样式在文档中整体声明一次,在表格内部由于不被继承所以必须再次声明
  • !important声明,IE6不认识!important声明,但在怪异模式中IE6/7/8都不认识!important声明

怎么触发浏览器的模式

  • 怪异模式
1. <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
2. 文档不做声明
  • 标准模式
1. <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
2. <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” “http://www.w3.org/TR/html4/strict.dtd”>
3. <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Frameset//EN” “http://www.w3.org/TR/html4/frameset.dtd”>
4. <!DOCTYPE HTML>    //HTML5

HTML5 为什么只需要写 <!DOCTYPE HTML>?

HTML5的文档声明简化成了<!DOCTYPE HTML>,对此W3C的解释是HTML5不基于SGML,也不要饮用DTD,但为了让浏览器正确的识别和解析需要声明文档类型,所以要写<!DOCTYPE HTML>

文档声明注意点

  • DOCTYPE 必须写在HTML的第一行
  • DOCTYPE 声明不区分大小写
  • DOCTYPE 声明不是一个标签
  • HTML文件不写DOCTYPE声明也基本能运行,但写DOCTYPE 声明是遵循W3C规范的一种做法,所以请遵守规范
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,904评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,581评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,527评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,463评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,546评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,572评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,582评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,330评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,776评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,087评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,257评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,923评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,571评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,192评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,436评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,145评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,747评论 1 92
  • 序章 谈谈“浏览器兼容性”的问题?很多前端的面试或笔试中,都有比较笼统的“说说你所知道的各浏览器存在的兼容问题”,...
    麻辣小隔壁阅读 3,042评论 1 57
  • 一:在制作一个Web应用或Web站点的过程中,你是如何考虑他的UI、安全性、高性能、SEO、可维护性以及技术因素的...
    Arno_z阅读 1,149评论 0 1
  • •前端面试题汇总 一、HTML和CSS 21 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? ...
    Simon_s阅读 2,220评论 0 8
  • 前端开发面试知识点大纲: HTML&CSS: 对Web标准的理解、浏览器内核差异、兼容性、hack、CSS基本功:...
    秀才JaneBook阅读 2,348评论 0 25