document.compatMode的CSS1compat使用介绍


Posted in Javascript onApril 03, 2014

document.compatMode

BackCompat:标准兼容模式关闭。浏览器宽度:document.body.clientWidth;

CSS1Compat:标准兼容模式开启。 浏览器宽度:document.documentElement.clientWidth。

var d = document, 
dd = d.documentElement, 

db = d.body, 

dc = d.compatMode == 'CSS1Compat', 

dx = dc ? dd: db; 
cWidth = dx.clientWidth; 
cHeight = dx.clientHeight; 
sWidth = dx.scrollWidth; 
sHeight = dx.scrollHeight; 
sLeft = dx.scrollLeft; 
sTop = dx.scrollTop;

在Standars mode中:

元素真正的宽度 = margin-left + border-left-width + padding-left + width + padding-right + border-right-width + margin-right;

在Quirks mode中:

width则是元素的实际宽度,内容宽度 = width - (margin-left + margin-right + padding-left + padding-right + border-left-width + border-right-width)

在js中如何判断当前浏览器正在以何种方式解析?
document对象有个属性compatMode ,它有两个值:

BackCompat 对应quirks mode
CSS1Compat 对应strict mode

浏览器的兼容性表

http://www.quirksmode.org/compatibility.html

历史原因:

当早期的浏览器Netscape 4和Explorer 4对css进行解析时,并未遵守W3C标准,这时的解析方式就被我们称之为quirks mode(怪异模式),但随着W3C的标准越来越重要,众多的浏览器开始依照W3C标准解析CSS,仿照W3C标准解析CSS的模式我们叫做strict mode(严格模式)
firefly

Javascript 相关文章推荐
jQuery实现图片渐入渐出切换展示效果
Aug 15 Javascript
JavaScript简单下拉菜单实例代码
Sep 07 Javascript
浏览器兼容性问题大汇总
Dec 17 Javascript
javascript数组遍历的方法实例分析
Sep 13 Javascript
Angular工具方法学习
Dec 26 Javascript
基于JQuery的Ajax方法使用详解
Aug 16 jQuery
JavaScript callback回调函数用法实例分析
May 08 Javascript
解决Vue+Element ui开发中碰到的IE问题
Sep 03 Javascript
浅谈发布订阅模式与观察者模式
Apr 09 Javascript
js实现前端界面导航栏下拉列表
Aug 27 Javascript
SpringBoot在yml配置文件中配置druid的操作
Nov 16 Javascript
JavaScript中Object、map、weakmap的区别分析
Dec 15 Javascript
javascript实现des解密加密全过程
Apr 03 #Javascript
无刷新预览所选择的图片示例代码
Apr 02 #Javascript
jQuery防止click双击多次提交及传递动态函数或多参数
Apr 02 #Javascript
jquery跟js初始化加载的多种方法及区别介绍
Apr 02 #Javascript
jquery中子元素和后代元素的区别示例介绍
Apr 02 #Javascript
js 日期比较相关天数代码
Apr 02 #Javascript
你未必知道的JavaScript和CSS交互的5种方法
Apr 02 #Javascript
You might like
php5中date()得出的时间为什么不是当前时间的解决方法
2008/06/30 PHP
phpmyadmin config.inc.php配置示例
2013/08/27 PHP
50个PHP程序性能优化的方法
2014/06/02 PHP
php生成Android客户端扫描可登录的二维码
2016/05/13 PHP
启用OPCache提高PHP程序性能的方法
2019/03/21 PHP
laravel中Redis队列监听中断的分析
2020/09/14 PHP
番茄的表单验证类代码修改版
2008/07/18 Javascript
Javascript 获取链接(url)参数的方法
2009/02/15 Javascript
在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
2011/12/20 Javascript
JS简单实现元素复制示例附图
2013/11/19 Javascript
php,js,css字符串截取的办法集锦
2014/09/26 Javascript
nodejs中转换URL字符串与查询字符串详解
2014/11/26 NodeJs
Javascript显示和隐藏ul列表的方法
2015/07/15 Javascript
jquery实现简单合拢与展开网页面板的方法
2015/09/01 Javascript
基于jQuery实现仿51job城市选择功能实例代码
2016/03/02 Javascript
关于function类中定义变量this的简单说明
2016/05/28 Javascript
JS去除空格和换行的正则表达式(推荐)
2016/06/14 Javascript
js正则表达式验证密码强度【推荐】
2017/03/03 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
深入解析koa之中间件流程控制
2019/06/17 Javascript
用python实现的可以拷贝或剪切一个文件列表中的所有文件
2009/04/30 Python
在Django的session中使用User对象的方法
2015/07/23 Python
Python 常用 PEP8 编码规范详解
2017/01/22 Python
Python编程之基于概率论的分类方法:朴素贝叶斯
2017/11/11 Python
python实现将文件夹下面的不是以py文件结尾的文件都过滤掉的方法
2018/10/21 Python
浅谈Python3中print函数的换行
2020/08/05 Python
HTML最新标准HTML5总结(必看)
2016/06/13 HTML / CSS
宝拉珍选英国官网:Paula’s Choice英国
2019/05/29 全球购物
linux下进程间通信的方式
2013/01/23 面试题
园林施工员岗位职责
2013/12/11 职场文书
建筑公司员工自我鉴定
2014/04/08 职场文书
2014年大学生职业规划书:未来不是梦,只要勇敢冲!
2014/09/22 职场文书
院党委组织查摆问题对照检查材料思想汇报2014
2014/10/08 职场文书
标准离婚协议书范文下载
2014/11/30 职场文书
2014司机年终工作总结
2014/12/05 职场文书
党员自我评价2015
2015/03/03 职场文书