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/jQuery对象互转(快速操作dom元素)
Feb 04 Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
Jul 25 Javascript
javascript实现youku的视频代码自适应宽度
May 25 Javascript
jQuery+HTML5实现手机摇一摇换衣特效
Jun 05 Javascript
JS实现图片平面旋转的方法
Mar 01 Javascript
基于Angularjs实现分页功能
May 30 Javascript
jquery根据一个值来选中select下的option实例代码
Aug 29 Javascript
详解angularjs利用ui-route异步加载组件
May 21 Javascript
Vue2.0生命周期的理解
Aug 20 Javascript
angularjs下ng-repeat点击元素改变样式的实现方法
Sep 12 Javascript
基于vue实现移动端圆形旋钮插件效果
Nov 28 Javascript
JavaScript文档对象模型DOM
Nov 20 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删除页面记录 同时刷新页面 删除条件用GET方式获得
2012/01/10 PHP
PHP随机数 C扩展随机数
2016/05/04 PHP
PHP实现的MD5结合RSA签名算法实例
2017/10/07 PHP
laravel框架分组控制器和分组路由实现方法示例
2020/01/25 PHP
jquery eval解析JSON中的注意点介绍
2013/08/23 Javascript
jquery中加载图片自适应大小主要实现代码
2013/08/23 Javascript
JS正则表达式大全(整理详细且实用)
2013/11/14 Javascript
原生js和jQuery随意改变div属性style的名称和值
2014/10/22 Javascript
angularjs中的e2e测试实例
2014/12/06 Javascript
javascript引用赋值(地址传值)用法实例
2015/01/13 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
2015/09/04 Javascript
jQuery判断浏览器并动态调整select宽度的方法
2016/03/02 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
js实现小窗口拖拽效果
2016/12/03 Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
2017/08/16 Javascript
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
2017/10/31 Javascript
百度地图去掉marker覆盖物或者去掉maker的label文字方法
2018/01/26 Javascript
详解刷新页面vuex数据不消失和不跳转页面的解决
2018/01/30 Javascript
Bootstrap Table中的多选框删除功能
2018/07/15 Javascript
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
JS中比较两个Object数组是否相等方法实例
2019/11/11 Javascript
深入讨论Python函数的参数的默认值所引发的问题的原因
2015/03/30 Python
解析Python中的异常处理
2015/04/28 Python
Python爬虫模拟登录带验证码网站
2016/01/22 Python
Ruby使用eventmachine为HTTP服务器添加文件下载功能
2016/04/20 Python
python监测当前联网状态并连接的实例
2018/12/18 Python
python 的numpy库中的mean()函数用法介绍
2020/03/03 Python
PyQt5+Pycharm安装和配置图文教程详解
2020/03/24 Python
python合并多个excel文件的示例
2020/09/23 Python
推荐10个HTML5响应式框架
2016/02/25 HTML / CSS
时尚设计师手表:The Watch Cabin
2018/10/06 全球购物
css animation配合SVG制作能量流动效果
2021/03/24 HTML / CSS
员工试用期考核自我鉴定
2014/04/13 职场文书
2015年中学校长工作总结
2015/05/19 职场文书
python实现网络五子棋
2021/04/11 Python
Valheim服务器 Mod修改安装教程 【ValheimPlus】
2022/12/24 Servers