浏览器工作模式之标准模式/怪异模式/近似标准模式
1、 浏览器工作模式(渲染模式)分类
浏览器的工作模式被称为“渲染模式”,会影响“渲染方式+代码解析+脚本行为”;
从广泛的角度讲,浏览器的工作模式的差异体现在处理“HTML、XML、非web内容”;
目前渲染模式的分类主要有3种:标准模式(又名严格模式)、近似标准模式、混杂模式(又名怪异模式)。
通过document.compatMode可获知浏览器当前采用的渲染模式:
2、为何划分渲染模式
微软的IE6相比IE5.5进行了巨大改进,IE6支持了部分CSS1的特性,例如盒模型的理解、表格尺寸计算。块级元素的height和width在IE5.5中包括了内容+内边距+边框,而在IE6中仅包括内容。这导致IE6与IE5.5在CSS的解析和渲染时有很大差异。为了向后兼容,微软为用户提供了一个“开关”来选择浏览器的工作模式,这个开关就是DTD(document type definition)。
某些DTD会使IE6工作在“标准模式”,此模式使得页面以最新的CSS1方式处理;而某些DTD会使IE6工作在“混杂 模式”,此模式使得页面以IE5.5的方式处理,这样就能保证以前在IE5.5中正常显示的页面在IE6中还能正常显示(即向后兼容)。 混杂模式意味着:即使你用的是最高级的IE11浏览器,在混杂模式中我们面对的浏览器仍相当于老古董IE5.5, 解析出来的HTML文档和IE5.5浏览器解析出来的效果一样。之后的IE7以及其他IE版本也采用此模式,但随着时间推进和标准进步,IE6/IE7中的标准模式已经逐渐不够“标准”了。所以IE8中重新定义了“标准模式”,更大程度地支持新的标准规范。为了向后兼容IE6/IE7,IE8新增了一种模式——“近似标准模式”,此模式相当于IE6/IE7中的“标准模式”。所以IE8以及之后的IE系列浏览器就有3种工作模式:标准模式+近似标准模式+混杂模式。
3、DOCTYPE的意义
在浏览器解析html文档正文前得先确定文档类型,以决定以何种方式渲染。渲染模式影响着浏览器对CSS代码甚至部分Javascript脚本的解析。
4、各种模式的触发条件
1) HTML文档中没有DOCTYPE声明触发混杂模式
2) HTML文档中用了错误的DOCTYPE会触发混杂模式
3) HTML文档中有DOCTYPE,但DOCTYPE不是放在文档最开始,其之前出现了其他内容(包括普通文本、HTML标签、HTML注释、XML声明、IE条件注释)
a) 若是普通文本和HTML标签,各浏览器均进入混杂模式
b) 若是HTML注释,不会在页面中展示出来,故非IE浏览器会忽略其存在,正确解析DOCTYPE;IE浏览器则会进入混杂模式
c) 若是XML声明,不会在页面中展示,故非IE浏览器会忽略其存在,而IE6则会进入混杂模式
d) 若是IE条件注释,各浏览器均进入标准模式。所以如果真想在DOCTYPE之前写东西但又想保证标准模式可以这样做:<![if IE]><!—comment--><![endif]>
4) HTML5的DOCTYPE:<!DOCTYPE html>触发的是标准模式
5) HTML4.01 Strict的DOCTYPE会触发标准模式:<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN””http://www.w3.org/TR/html4/strict.dtd”>
6) HTML4.01 Transitional的DOCTYPE会触发近似标准模式:<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
总结:尽量让浏览器使用标准模式进行渲染,这样能够将兼容性问题的风险降到最低。应该尽量保证DOCTYPE在文档绝对开头位置,而且尽量不在其之前插入任何内容。
附录: 一些常见的 doctype
Q 代表“混杂模式”,A 代表“接近标准模式”,S 代表“标准模式”
浏览器工作模式之标准模式/怪异模式/近似标准模式相关推荐
- doctype声明、浏览器的标准、怪异等模式
doctype 标准(严格)模式(Standards Mode).怪异(混杂)模式(Quirks Mode),如何触发,区分他们有何意义? 触发标准模式 1.加DOCTYPE声明,比如: <!D ...
- [css] 不使用border画出1px高的线,在不同浏览器的标准和怪异模式下都能保持效果一样
[css] 不使用border画出1px高的线,在不同浏览器的标准和怪异模式下都能保持效果一样 <div style="width: 100%;height: 1px;"&g ...
- web浏览器与IE的关系,如何设置web浏览器工作在IE9模式下?
一,问题的提出 偶然发现,Winform的里的web浏览器和IE浏览器实际安装的版本似乎并不同步,很有趣! 下面有张图,里面一个窗口是用IE9打开某网站,另一个窗口是用Winform的web浏览器+打 ...
- 计算机应用工作技能与经验,关于计算机应用技能人才培养模式的思考
[摘 要]本文针对当前职业院校计算机应用专业人才培养模式中存在的人才培养与市场脱节.课程体系陈旧不适应企业和社会需求.缺乏办学特色等问题,提出了改革人才培养模式的思路,即:以职业能力为核心.以工作过程 ...
- 超级vga显示卡_VESA 编程介绍(一)标准VGA BIOS及超级VGA模式号
VESA编程介绍 (1)标准VGA BIOS及超级VGA模式号 ------------------------------------------------------------------ ...
- chrome怎么隐藏浏览器_如何使用Google Chrome的隐藏阅读器模式
chrome怎么隐藏浏览器 Chrome 75 has a hidden "Reader" mode that strips web pages down to the bare ...
- (68)SPI工作模式有哪些?分为几种极性模式。
1.1 SPI工作模式有哪些?分为几种极性模式. 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)SPI工作模式有哪些?分为几种极性模式.: 5)结束语. 1.1.2 本 ...
- Win10 360浏览器打不开特定网站网页,选择兼容模式有时可以,不稳定
环境: 联想台式机 Win10 专业版 360浏览器13.1 问题描述: 之前正常, 360浏览器打不开特定网站网页,选择兼容模式有时可以不稳定,网络正常,换谷歌浏览器也正常 解决方案: 1.升级最新 ...
- 虚拟网络编辑器三种模式工作原理详细介绍(桥接-网络地址转换-主机模式)
1.桥接模式(Bridged) 使用该模式的虚拟操作系统是局域网中的一个独立主机,具有独立访问网络中其他主机的功能.它的配置信息由VMnet0虚拟网络提供,不支持DHCP服务.用户需要按照一定的规则 ...
- IEEE754标准中的4种舍入模式
link 一.前言 最近在写一个基于IEEE754标准的浮点加法器,其中有一项要求就是要满足IEEE754标准的四种舍入模式. 我们在进行对阶或者右规格化的时候,阶数较小的操作数在进行右移的时候,会造 ...
最新文章
- MySQL定义条件和处理程序_MySQL教程111-MySQL定义条件和处理程序
- mysql期中考试题及答案_MySQL练习题及答案
- python定义类()中写object和不写的区别
- 【Vegas原创】“無法解析 equal to 動作的定序衝突”错误的处理
- 门户网站负载均衡技术的六大新挑战
- 多线程CreateThread函数的用法及注意事项
- 如何使用Web.config的authentication节实现Form认证
- spring-statemachine有限状态机
- linux系统怎样写单片机程序,单片机知识是Linux驱动开发的基础之一以及如何学单片机...
- 爬虫笔记(十四)——BeautifulSoup库
- usb接口供电不足_主板接口不认识?一分钟带你了解电脑主板接口
- php sqlsrv 分页,sqlsrv php分页
- sharepoint学习资料-个人博客
- 下载SAP标准教程的方法
- 美国目前最流行的五种量化交易模型
- git 中 HEAD 概念
- 【QCM2150】WCN3680 WFA WPA3 STA 5.6.1测试失败
- MEC与C-V2X融合应用场景白皮书
- 炒菜,我把厨房烧了!
- 基础加强 -- 反射
热门文章
- 验证OpenVino时,找不到指定模块的解决
- 火车票能不能选座_终于,买火车票也能选座了!
- 利用计算机实现排列组合公式,计算机算法基础 ——数学(排列组合函数)
- python主动推送链接至Bing站长平台分分钟让必应收录你的网页-必应SEO窍门
- 建立人脉关系以及可能认识的人推荐
- 对话诊断(X)2021Neurocomputing-Heterogeneous graph reasoning for knowledge-grounded medical DS
- spring扫描出现Annotation-specified bean name 'userService' for bean class [com.test.service.UserService]
- 长沙县:红红火火过大年 文化惠民暖人心
- tif文件批量转png
- ctf解题--算术题