浅谈浏览器的三种模式

      首先我们应该要了解为什么会有多种浏览器模式——其实这是个历史遗留问题,在浏览器大战时期,网景浏览器(Netscape Navigator)和微软的IE浏览器(Microsoft Internet Explorer)对网页分别有不同的实现方式,那个时候的网页要针对这两种浏览器分别开发不同的版本。而到了 W3C 制定标准之后,这些浏览器就不能继续使用这种页面了,因而会导致大部分现有站点都不能使用。基于这个原因,浏览器才引入两种模式来处理一些遗留的站点。

     现在的浏览器排版引擎支持三种模式:怪异(Quirks)模式、准标准(AlmosStandards)和标准(Standards)模式。在怪异模式中,排版引擎会模拟 网景4 Windows 中的 IE5 的行为;在完全标准的模式中,会尽量执行 HTML CSS 规范所指定的行为;而在准标准模式中,则只包含很少的一部分怪异模式中的行为。

    官方定义:

  • 怪异(Quirks)模式为了避免“破损”那些按照在20世纪90年代末风行的实践创作的页面,浏览器违背了现代的Web格局规范。不合的浏览器实现了不合的怪癖行动。IE6、7和8中,怪癖模式有效地冻结在IE5.5 。其他浏览器中,怪癖模式是标准模式的少量偏移。
  • 准标准(AlmosStandards)模式 它遵守传统的做法来实现表格单位格的垂直尺寸而不是严格的遵守CSS2规范,更接近Mozilla的准标准模式而不是Mozilla的标准模式。
  • 标准(Standards)模式:浏览器按W3C标准规范解析执行代码.....

什么是DTD?

   DTD——DOCTYPE,或者称为 Document Type Declaration(文档类型声明,缩写DTD)通常情况下,DOCTYPE 位于一个 HTML文档的最前面的位置,位于根元素HTML的起始标签之前。这样一来,在浏览器解析 HTML 文档正文之前就可以确定当前文档的类型,以决定其需要采用的渲染模式(不同的渲染模式会影响到浏览器对于 CSS 代码甚至 JavaScript 脚本的解析)。XHTML1.0提供了三种DOCTYPE可选择:1、过渡型(Transitional )2、严格型(Strict )3、框架型(Frameset )

触发三种模式的格式

  • 标准模式
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  <!-- 严格履行 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!-- 兼容XHTML放弃的标签 -->
  • 准标准模式
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
  • 怪异模式

      第一行不写,或写错DOCTYPE就能触发

三种模式下的表现差异:

    首先,怪癖模式是不可取的,因为其没有兼容性可言。在IE(IE6-IE9)中,混杂模式使用IE5.5内核来解析并渲染页面。

     其次,准标准

模式是在尽可能遵循标准的基础上兼容部分非标准代码,比如一些已经弃用的标签等。

     最后,标准模式则是对统一标准实现最好的模式,它要求标

签必须闭合(唯一不需要闭合的就是DOCTYPE标签),不能使用已经废弃的标签等等。目前,使用最多的DOCTYPE声明为过渡型HTML或

XHTML,因为它能最大话的兼容一些老代码。不过,技术领先的公司(比如google、facebook、twitter等都如此)都已经使用了html5的

DOCTYPE声明,即<!DOCTYPE html>,它所触发的模式与严格型HTML或严格型XHTML所触发的模式完全相同,但好处是节省代码且向前兼

容(HTML5时代)。

转载于:https://my.oschina.net/longteng2013/blog/149576

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值