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 相关文章推荐
使用PHP+JQuery+Ajax分页的实现
Apr 23 Javascript
判断javascript的数据类型(示例代码)
Dec 11 Javascript
javascript中的事件代理初探
Mar 08 Javascript
Node.js实现批量去除BOM文件头
Dec 20 Javascript
Jquery 分页插件之Jquery Pagination
Aug 25 Javascript
ECharts仪表盘实例代码(附源码下载)
Feb 18 Javascript
简单的JS控制button颜色随点击更改的实现方法
Apr 17 Javascript
基于vue中css预加载使用sass的配置方式详解
Mar 13 Javascript
express + jwt + postMan验证实现持久化登录
Jun 05 Javascript
cordova+vue+webapp使用html5获取地理位置的方法
Jul 06 Javascript
原生js实现商品筛选功能
Oct 28 Javascript
关于vue中如何监听数组变化
Apr 28 Vue.js
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日历程序
2006/12/06 PHP
php mssql扩展SQL查询中文字段名解决方法
2012/10/15 PHP
PHP之短标签开启设置
2013/06/17 PHP
调试PHP程序的多种方法介绍
2014/11/06 PHP
Javascript 日期处理之时区问题
2009/10/08 Javascript
查找iframe里元素的方法可传参
2013/09/11 Javascript
JS小游戏之宇宙战机源码详解
2014/09/25 Javascript
javascript判断css3动画结束 css3动画结束的回调函数
2015/03/10 Javascript
JavaScript计算某一天是星期几的方法
2015/08/05 Javascript
原生js实现简单的焦点图效果实例
2017/12/14 Javascript
解决vue.js this.$router.push无效的问题
2018/09/03 Javascript
[54:41]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VGJ.T VS paiN
2018/03/31 DOTA
Python中对元组和列表按条件进行排序的方法示例
2015/11/10 Python
Linux中安装Python的交互式解释器IPython的教程
2016/06/13 Python
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
对python实时得到鼠标位置的示例讲解
2018/10/14 Python
pandas去除重复列的实现方法
2019/01/29 Python
Python多线程爬取豆瓣影评API接口
2019/10/22 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
python实现ping命令小程序
2020/12/28 Python
python解决OpenCV在读取显示图片的时候闪退的问题
2021/02/23 Python
css3 给页面加个半圆形导航条主要利用旋转和倾斜样式
2014/02/10 HTML / CSS
利用HTML5 Canvas制作键盘及鼠标动画的实例分享
2016/03/15 HTML / CSS
使用canvas一步步实现图片打码功能的方法
2019/06/17 HTML / CSS
Giglio德国网上精品店:奢侈品服装和配件
2016/09/23 全球购物
教师求职推荐信范文
2013/11/20 职场文书
行政人员工作职责
2013/12/05 职场文书
满月酒答谢词
2014/01/14 职场文书
德语专业求职信
2014/03/12 职场文书
中学生打架检讨书
2014/10/13 职场文书
荆州古城导游词
2015/02/06 职场文书
工程技术负责人岗位职责
2015/04/13 职场文书
2015年信息中心工作总结
2015/05/25 职场文书
高中地理教学反思
2016/02/19 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书
创业计划书之川味火锅店
2019/09/02 职场文书