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模拟的QQ面板上的多级可展开的菜单
Oct 10 Javascript
firefox事件处理之自动查找event的函数(用于onclick=foo())
Aug 05 Javascript
js获得网页背景色和字体色的方法
Mar 21 Javascript
js数组依据下标删除元素
Apr 14 Javascript
Angularjs---项目搭建图文教程
Jul 08 Javascript
利用JS实现页面删除并重新排序功能
Dec 09 Javascript
jQuery中绑定事件bind() on() live() one()的异同
Feb 23 Javascript
Angular.js自定义指令学习笔记实例
Feb 24 Javascript
详解基于webpack2.x的vue2.x的多页面站点
Aug 21 Javascript
小程序点击图片实现png转jpg
Oct 22 Javascript
vue.js 子组件无法获取父组件store值的解决方式
Nov 08 Javascript
在vue中实现嵌套页面(iframe)
Jul 30 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网站安装程序制作的原理、步骤、注意事项和示例代码
2010/08/01 PHP
php实现的DateDiff和DateAdd时间函数代码分享
2014/08/16 PHP
laravel中的错误与日志用法详解
2016/07/26 PHP
php版微信开发之接收消息,自动判断及回复相应消息的方法
2016/09/23 PHP
PHP面向对象程序设计继承用法简单示例
2018/12/28 PHP
Mootools 1.2教程(21)——类(二)
2009/09/15 Javascript
重写javascript中window.confirm的行为
2012/10/21 Javascript
jQuery之选择组件的深入解析
2013/06/19 Javascript
iframe调用父页面函数示例详解
2014/07/17 Javascript
重写document.write实现无阻塞加载js广告(补充)
2014/12/12 Javascript
angularjs表格分页功能详解
2016/01/21 Javascript
JavaScript中的this使用详解
2016/07/27 Javascript
vue.js学习笔记之绑定style样式和class列表
2016/10/31 Javascript
vue移动UI框架滑动加载数据的方法
2018/03/12 Javascript
详解webpack loader和plugin编写
2018/10/12 Javascript
微信小程序实现获取小程序码和二维码java接口开发
2019/03/29 Javascript
node中使用log4js4.x版本记录日志的方法
2019/08/20 Javascript
vue实现导航标题栏随页面滚动渐隐渐显效果
2020/03/12 Javascript
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
2020/06/06 jQuery
python迭代dict的key和value的方法
2018/07/06 Python
Python3爬虫使用Fidder实现APP爬取示例
2018/11/27 Python
Python 实现交换矩阵的行示例
2019/06/26 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
Python 支持向量机分类器的实现
2020/01/15 Python
解析python 类方法、对象方法、静态方法
2020/08/15 Python
python向xls写入数据(包括合并,边框,对齐,列宽)
2021/02/02 Python
英国豪华真皮和布艺沙发销售网站:Darlings of Chelsea
2018/01/05 全球购物
美国滑雪板和装备购物网站:Skis.com
2018/12/20 全球购物
娇韵诗俄罗斯官方网站:Clarins俄罗斯
2020/10/03 全球购物
自荐信怎么写好
2013/11/11 职场文书
幼儿园中班新学期寄语
2014/01/18 职场文书
优质服务演讲稿
2014/05/14 职场文书
2014年语文教学工作总结
2014/12/17 职场文书
抗洪救灾感谢信
2015/01/22 职场文书
小学推普周活动总结
2015/05/07 职场文书
浅谈redis的过期时间设置和过期删除机制
2022/03/18 MySQL