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+JS实现仿百度搜索结果中关键字变色效果
Aug 02 Javascript
ajax中get和post的说明及使用与区别
Dec 23 Javascript
详解JavaScript中shift()方法的使用
Jun 09 Javascript
一种Javascript解释ajax返回的json的好方法(推荐)
Jun 02 Javascript
js 点击a标签 获取a的自定义属性方法
Nov 21 Javascript
jQuery中ajax错误调试分析
Dec 01 Javascript
jQuery文字轮播特效
Feb 12 Javascript
JavaScript事件对象event用法分析
Jul 27 Javascript
实现elementUI表单的全局验证的方法步骤
Apr 29 Javascript
js实现AI五子棋人机大战
May 28 Javascript
JS实现简单打字测试
Jun 24 Javascript
vue.js 输入框输入值自动过滤特殊字符替换中问标点操作
Aug 31 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
一个程序下载的管理程序(一)
2006/10/09 PHP
php empty,isset,is_null判断比较(差异与异同)
2010/10/19 PHP
基于Snoopy的PHP近似完美获取网站编码的代码
2011/10/23 PHP
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
2013/02/06 PHP
joomla jce editor 解决上传中文名文件失败问题
2013/06/09 PHP
PHP实现多维数组转字符串和多维数组转一维数组的方法
2015/08/08 PHP
PHP实现上传多图即时显示与即时删除的方法
2017/05/09 PHP
PHP7新功能总结
2019/04/14 PHP
js 数组操作代码集锦
2009/04/28 Javascript
利用JQuery为搜索栏增加tag提示
2009/06/22 Javascript
JS延迟加载加快页面打开速度示例代码
2013/12/30 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
2015/10/15 Javascript
JS原型链怎么理解
2016/06/27 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
Websocket协议详解及简单实例代码
2016/12/12 Javascript
详解JavaScript RegExp对象
2017/02/04 Javascript
React组件生命周期详解
2017/07/03 Javascript
vue+mockjs模拟数据实现前后端分离开发的实例代码
2017/08/08 Javascript
js页面加载后执行的几种方式小结
2020/01/30 Javascript
封装Vue Element的table表格组件的示例详解
2020/08/19 Javascript
[01:46]辉夜杯—打造中国DOTA新格局
2015/12/25 DOTA
wxPython窗口的继承机制实例分析
2014/09/28 Python
Python3读取UTF-8文件及统计文件行数的方法
2015/05/22 Python
wxPython定时器wx.Timer简单应用实例
2015/06/03 Python
深入讲解Python中的迭代器和生成器
2015/10/26 Python
用Python实现随机森林算法的示例
2017/08/24 Python
Python字典,函数,全局变量代码解析
2017/12/18 Python
将TensorFlow的模型网络导出为单个文件的方法
2018/04/23 Python
Python通用循环的构造方法实例分析
2018/12/19 Python
python实现整数的二进制循环移位
2019/03/08 Python
详解【python】str与json类型转换
2019/04/29 Python
Django单元测试工具test client使用详解
2019/08/02 Python
pyecharts调整图例与各板块的位置间距实例
2020/05/16 Python
感恩祖国演讲稿
2014/09/09 职场文书
2015年公共机构节能宣传周活动总结
2015/03/26 职场文书
2016党员发展对象培训心得体会
2016/01/08 职场文书