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 相关文章推荐
通过js脚本复制网页上的一个表格的不错实现方法
Dec 29 Javascript
jQuery取id有.的值的方法
May 21 Javascript
jQuery中ready事件用法实例
Jan 19 Javascript
javascript给span标签赋值的方法
Nov 26 Javascript
微信小程序 Image API实例详解
Sep 30 Javascript
Bootstrap基本组件学习笔记之按钮组(8)
Dec 07 Javascript
vue之浏览器存储方法封装实例
Mar 15 Javascript
JS动画定时器知识总结
Mar 23 Javascript
Vue中使用方法、计算属性或观察者的方法实例详解
Oct 31 Javascript
生产制造追溯系统之再说条码打印
Jun 03 Javascript
Vue项目前后端联调(使用proxyTable实现跨域方式)
Jul 18 Javascript
详细聊聊浏览器是如何看闭包的
Nov 11 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 header 跳转
2013/06/17 PHP
php+mysqli实现批量替换数据库表前缀的方法
2014/12/29 PHP
使用 PHPStorm 开发 Laravel
2015/03/24 PHP
基于thinkPHP3.2实现微信接入及查询token值的方法
2017/04/18 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
2019/10/14 PHP
测试JavaScript字符串处理性能的代码
2009/12/07 Javascript
javascript控制层显示或隐藏的方法
2015/07/22 Javascript
深入学习JavaScript中的Rest参数和参数默认值
2015/07/28 Javascript
基于jQuery和CSS3制作响应式水平时间轴附源码下载
2015/12/20 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
Javascript 闭包详解及实例代码
2016/11/30 Javascript
bootstrap提示标签、提示框实现代码
2016/12/28 Javascript
详解angular2实现ng2-router 路由和嵌套路由
2017/03/24 Javascript
javascript中this用法实例详解
2017/04/06 Javascript
Vue 中使用 CSS Modules优雅方法
2018/04/09 Javascript
jQuery中$原理实例分析
2018/08/13 jQuery
Angular封装搜索框组件操作示例
2019/04/25 Javascript
详解VUE前端按钮权限控制
2019/04/26 Javascript
使用imba.io框架得到比 vue 快50倍的性能基准
2019/06/17 Javascript
python实现在windows下操作word的方法
2015/04/28 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
2019/07/31 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
Python Numpy中数据的常用保存与读取方法
2020/04/01 Python
CSS3 实现童年的纸飞机
2019/05/05 HTML / CSS
利用Storage Event实现页面间通信的示例代码
2018/07/26 HTML / CSS
英国领先的大码时装品牌之一:Elvi
2018/08/26 全球购物
Under Armour瑞典官方网站:美国高端运动科技品牌
2018/11/21 全球购物
小学英语教学反思
2014/01/30 职场文书
计算机专业职业规划
2014/02/28 职场文书
工程质量承诺书范文
2014/03/27 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书
公司优秀员工推荐信
2015/03/24 职场文书
2015年公务员转正工作总结
2015/04/24 职场文书
小学中队活动总结
2015/05/11 职场文书
三严三实·严以用权心得体会
2016/01/12 职场文书
《暗黑破坏神2:重制版》本周进行第一轮A测 目前可官网进行申请报名
2021/04/07 其他游戏