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 相关文章推荐
一段利用WSH修改和查看IP配置的代码
May 11 Javascript
简单实用的js调试logger组件实现代码
Nov 20 Javascript
JavaScript检查某个function是否是原生代码的方法
Aug 20 Javascript
探讨js字符串数组拼接的性能问题
Oct 11 Javascript
javascript记录文本框内文字个数检测文字个数变化
Oct 14 Javascript
简单实现js间歇或无缝滚动效果
Jun 29 Javascript
关于JavaScript的单双引号嵌套问题
Aug 20 Javascript
开发Vue树形组件的示例代码
Dec 21 Javascript
MVVM框架下实现分页功能示例
Jun 14 Javascript
Vue源码中要const _toStr = Object.prototype.toString的原因分析
Dec 09 Javascript
使用React手写一个对话框或模态框的方法示例
Apr 25 Javascript
javascript利用canvas实现鼠标拖拽功能
Jul 23 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
php 301转向实现代码
2008/09/18 PHP
关于使用coreseek并为其做分页的介绍
2013/06/21 PHP
关于PHP转换超过2038年日期出错的问题解决
2017/06/28 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
2019/10/30 PHP
使用javascript访问XML数据的实例
2006/12/27 Javascript
chrome原生方法之数组
2011/11/30 Javascript
js 使用form表单select类实现级联菜单效果
2012/12/19 Javascript
JavaScript验证图片类型(扩展名)的函数分享
2014/05/05 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
Jquery跨浏览器文本复制插件Zero Clipboard的使用方法
2016/02/28 Javascript
javaScript中的原型解析【推荐】
2016/05/05 Javascript
微信小程序 保留小数(toFixed)详细介绍
2016/11/16 Javascript
Angularjs 动态添加指令并绑定事件的方法
2017/04/13 Javascript
vue2.0的contextmenu右键弹出菜单的实例代码
2017/07/24 Javascript
vue-cli脚手架搭建的项目去除eslint验证的方法
2018/09/29 Javascript
vue通过指令(directives)实现点击空白处收起下拉框
2018/12/06 Javascript
Vue内部渲染视图的方法
2019/09/02 Javascript
详解vue-router的Import异步加载模块问题的解决方案
2020/05/13 Javascript
Vue + Element-ui的下拉框el-select获取额外参数详解
2020/08/14 Javascript
[00:58]2016年国际邀请赛勇士令状宣传片
2016/06/01 DOTA
Python常用正则表达式符号浅析
2014/08/13 Python
Django中Forms的使用代码解析
2018/02/10 Python
解决python opencv无法显示图片的问题
2018/10/28 Python
在python中将字符串转为json对象并取值的方法
2018/12/31 Python
python3安装OCR识别库tesserocr过程图解
2020/04/02 Python
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
Furla官网:意大利著名的皮革品牌
2019/08/06 全球购物
英国复古服装购物网站:Collectif
2019/10/30 全球购物
教师评优事迹材料
2014/01/10 职场文书
幼儿园运动会口号
2014/06/07 职场文书
党的作风建设心得体会
2014/10/22 职场文书
申报优秀教师材料
2014/12/16 职场文书
优秀护士事迹材料
2014/12/25 职场文书
宾馆前台接待岗位职责
2015/04/02 职场文书