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 相关文章推荐
JavaScript格式化数字的函数代码
Nov 30 Javascript
Js+Flash实现访问剪切板操作
Nov 20 Javascript
js控制滚动条缓慢滚动到顶部实现代码
Mar 20 Javascript
js实现兼容IE和FF的上下层的移动
May 04 Javascript
JavaScript常用函数工具集:lao-utils
Mar 01 Javascript
jQuery文字提示与图片提示效果实现方法
Jul 04 Javascript
jQuery实现页面顶部下拉广告
Dec 30 Javascript
Js实现京东无延迟菜单效果实例(demo)
Jun 02 Javascript
详解基于Node.js的微信JS-SDK后端接口实现代码
Jul 15 Javascript
了解重排与重绘
May 29 Javascript
JavaScript学习教程之cookie与webstorage
Jun 23 Javascript
微信小程序实现禁止分享代码实例
Oct 19 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 ignore_user_abort与register_shutdown_function 使用方法
2009/06/14 PHP
ajax+php打造进度条代码[readyState各状态说明]
2010/04/12 PHP
php中随机显示图片的函数代码
2011/06/23 PHP
PHP 动态生成静态HTML页面示例代码
2014/01/15 PHP
分享ThinkPHP3.2中关联查询解决思路
2015/09/20 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
利用Laravel生成Gravatar头像地址的优雅方法
2017/12/30 PHP
Laravel配置全局公共函数的方法步骤
2019/05/09 PHP
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
JQuery为textarea添加maxlength属性的代码
2010/04/07 Javascript
jQuery下通过replace字符串替换实现大小图片切换
2012/05/22 Javascript
input链接页面、打开新网页等等的具体实现
2013/12/30 Javascript
捕获和分析JavaScript Error的方法
2014/03/25 Javascript
JavaScript分秒倒计时器实现方法
2015/02/02 Javascript
纯JS代码实现一键分享功能
2016/04/20 Javascript
详解Vue 开发模式下跨域问题
2017/06/06 Javascript
JS实现的找零张数最小问题示例
2017/11/28 Javascript
Vue组件和Route的生命周期实例详解
2018/02/10 Javascript
jQuery实现form表单序列化转换为json对象功能示例
2018/05/23 jQuery
Spring boot 和Vue开发中CORS跨域问题解决
2018/09/05 Javascript
layui 解决富文本框form表单提交为空的问题
2019/10/26 Javascript
python统计一个文本中重复行数的方法
2014/11/19 Python
Linux 下 Python 实现按任意键退出的实现方法
2016/09/25 Python
Python爬虫文件下载图文教程
2018/12/23 Python
django框架使用orm实现批量更新数据的方法
2019/06/21 Python
应用OpenCV和Python进行SIFT算法的实现详解
2019/08/21 Python
numpy:找到指定元素的索引示例
2019/11/26 Python
Python基于numpy模块实现回归预测
2020/05/14 Python
CSS3绘制圆角矩形的简单示例
2015/09/28 HTML / CSS
创业大赛策划书
2014/03/01 职场文书
办公室员工岗位工作职责
2014/03/10 职场文书
优秀公益广告词大全
2014/03/19 职场文书
2014幼儿园小班工作总结
2014/11/10 职场文书
2015年中学团委工作总结
2015/07/22 职场文书
如何判断微信付款码和支付宝付款码
2021/04/01 PHP
《最终幻想14》6.01版本4月5日推出 追加新任务新道具
2022/04/03 其他游戏