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 相关文章推荐
jquery按回车提交数据的代码示例
Nov 05 Javascript
在linux中使用包管理器安装node.js
Mar 13 Javascript
JavaScript实现找质数代码分享
Mar 24 Javascript
jquery+css实现绚丽的横向二级下拉菜单-附源码下载
Aug 23 Javascript
jquery validate demo 基础
Oct 29 Javascript
js格式化输入框内金额、银行卡号
Feb 01 Javascript
JavaScript中自带的 reduce()方法使用示例详解
Aug 10 Javascript
jQuery+CSS3实现仿花瓣网固定顶部位置带悬浮效果的导航菜单
Sep 21 Javascript
Vue.js实现表格动态增加删除的方法(附源码下载)
Jan 20 Javascript
十大热门的JavaScript框架和库
Mar 21 Javascript
vue使用v-if v-show页面闪烁,div闪现的解决方法
Oct 12 Javascript
详解JavaScript之ES5的继承
Jul 08 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 mssql 时间格式问题
2009/01/13 PHP
Twig模板引擎用法入门教程
2016/01/20 PHP
表单的一些基本用法与技巧
2006/07/15 Javascript
JavaScript 仿关机效果的图片层
2008/12/26 Javascript
ExtJs3.0中Store添加 baseParams 的Bug
2010/03/10 Javascript
JavaScript中json使用自己总结
2013/08/13 Javascript
输入自动提示搜索提示功能的使用说明:sugggestion.txt
2013/09/02 Javascript
原生js ActiveXObject获取execl里面的值
2013/11/01 Javascript
jquery滚动条插件jScrollPane的使用介绍
2013/11/08 Javascript
Jquery中request和request.form和request.querystring的区别
2015/11/26 Javascript
Bootstrap CSS布局之表格
2016/12/17 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
详解node.js平台下Express的session与cookie模块包的配置
2017/04/26 Javascript
基于easyui checkbox 的一些操作处理方法
2017/07/10 Javascript
实例分析JS与Node.js中的事件循环
2017/12/12 Javascript
浅谈React高阶组件
2018/03/28 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
vue点击input弹出带搜索键盘并监听该元素的方法
2018/08/25 Javascript
JavaScript使用prototype原型实现的封装继承多态示例
2018/08/31 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
javascript对HTML字符转义与反转义
2018/12/13 Javascript
AngularJS实现的鼠标拖动画矩形框示例【可兼容IE8】
2019/05/17 Javascript
深入理解基于vue-cli的webpack打包优化实践及探索
2019/10/14 Javascript
vue项目出现页面空白的解决方案
2019/10/31 Javascript
JS实现图片懒加载(lazyload)过程详解
2020/04/02 Javascript
js实现简单五子棋游戏
2020/05/28 Javascript
Nodejs + sequelize 实现增删改查操作
2020/11/07 NodeJs
[00:32]2016完美“圣”典风云人物:Maybe宣传片
2016/12/05 DOTA
使用Python实现下载网易云音乐的高清MV
2015/03/16 Python
深入理解Python装饰器
2016/07/27 Python
python中使用%与.format格式化文本方法解析
2017/12/27 Python
德国大型和小型家用电器网上商店:Energeto
2019/05/15 全球购物
Linux如何为某个操作添加别名
2013/03/01 面试题
违反交通法规检讨书
2014/09/10 职场文书
2014年光棍节活动策划方案(创意集锦)
2014/09/29 职场文书
大雁塔英文导游词
2015/02/10 职场文书