严格模式与混杂模式——如何触发这两种模式,区分它们有何意义
来源:互联网 发布:嵌入式linux系统下载 编辑:程序博客网 时间:2024/06/09 13:49
(1)如何触发两种模式:
加入xml头部声明,可以触发IE浏览器的Quirks mode,触发之后,浏览器解析方式就和IE5.5一样,拥有IE5.5一样的bug和其他问题,行为(Javascript)也是如此。
(2)IE6的触发:在XHTML的DOCTYPE前加入XML声明,
<?xmlversion="1.0" encoding="utf-8"?>
<!DOCTYPE htmlPUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
(3)IE7的触发:在XML声明和XHTML的DOCTYPE之间,加入HTML注释
<?xmlversion="1.0" encoding="utf-8"?>
<!-- ... andkeep IE7 in quirks mode -->
<!DOCTYPE htmlPUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
(4)IE6和IE7都可以触发的:在HTML4.01的DOCTYPE文档头部,加入HTML注释
<!-- quirks mode--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
(5)在页面顶部加 <!DOCTYPE HTML PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN"> ,将触发“怪异模式”
(6)没有使用DTD声明或者使用HTML4以下(不包括HTML4)的DTD声明时,基本上所有的浏览器都是使用quirks mode呈现
如何判定现在是标准模式,还是怪异模式:
方法如下,执行代码
alert(window.top.document.compatMode);
//BackCompat 表示怪异模式
//CSS1Compat 表示标准模式
意义:
各个浏览器的混杂模式,基本就是各个浏览器的私有模式,不相互兼容。
所以,除非是为了兼容的问题,比如你不想修改很久很久以前做的IE ONLY的网页,否则,刻意触发混杂模式没有任何意义。
区分是标准模式还是混合模式,有其重要的意义所在,那就是确定页面解析时,使用的是“标准盒Box模型“,还是使用“传统Box模型“。
在mozillafirefox和 IE中的BOX模型
其解释中,因不一致导致相差2px的宽度,其解决方法:
div{
margin:30px!important;
margin:28px;
}
注意这两个margin的顺序一定不能写反,!important这个属性IE6不能识别,但IE7能识别,且IE8属于标准浏览器类型;故也支持。别的浏览器可以识别。所以在IE6下其实解释成这样:
div{
margin:30px;
margin:28px
}
重复定义的话按照最后一个来执行。
IE5 和IE6的BOX解释不一致
IE5下div{width:300px;margin:010px 0 10px;}
div的宽度会被解释为300px-10px(右填充)-10px(左填充),最终div的宽度为280px,
而在IE6和其他浏览器上,div宽度则是以300px+10px(右填充)+10px(左填充)=320px来计算的。
这时我们可以做如下修改
div{
width:300px!important;
width /**/:340px;
margin:0 10px 0 10px
}
- 严格模式与混杂模式——如何触发这两种模式,区分它们有何意义
- Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
- 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义
- Doctype作用? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
- 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义
- Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
- Doctype作用?严格模式与混杂模式如何区分?它们有何意义
- Doctype作用? 严格模式与混杂模式如何区分?它们有何意义?
- Doctype作用?严格模式与混杂模式如何区分?它们有何意义
- Doctype作用?严格模式与混杂模式如何区分?它们有何意义?
- Doctype作用?严格模式与混杂模式如何区分?它们有何意义?
- Doctype作用?严格模式与混杂模式如何区分?它们有何差异?
- Doctype作用?严格模式与混杂模式如何区分?它们有何差异?
- Doctype作用?严格模式与混杂模式如何区分?它们有何差异?
- Doctype的作用和如何区分严格模式和混杂模式,有什么意义
- 严格模式与混杂模式
- DOCTYPE 声明的作用是什么? 严格模式与混杂模式如何区分?
- DOCTYPE 严格模式与混杂模式
- Android中Preference的使用以及监听事件分析
- 如何在网站开发中使用LINQ操作数据库
- window下安装Oracle11G安装
- Python 之 __new__() 方法与实例化
- 【LeetCode】【Python】Minimum Path Sum
- 严格模式与混杂模式——如何触发这两种模式,区分它们有何意义
- 火狐网址
- c# winform 遍历TreeView控件(属性为checkbox时)中,所有被选中的节点
- Android的AlertDialog详解
- 产品设计必读书籍推荐
- Divide two integers
- Android调用asp.net编写的*.ashx(一般处理程序)获取数据
- Hyper-v不能启动与开机BCD启动菜单有关!恢复BCD问题解决
- 异常处理系列: android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed