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+dom树型菜单类,希望朋友们一起进步
May 03 Javascript
利用404错误页面实现UrlRewrite的实现代码
Aug 20 Javascript
javascript:history.go()和History.back()的区别及应用
Nov 25 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
Oct 16 Javascript
js实现页面跳转的五种方法推荐
Mar 10 Javascript
利用JS提交表单的几种方法和验证(必看篇)
Sep 17 Javascript
JS查找英文文章中出现频率最高的单词
Mar 20 Javascript
vue axios数据请求及vue中使用axios的方法
Sep 10 Javascript
浅谈React碰到v-if
Nov 04 Javascript
vue下使用nginx刷新页面404的问题解决
Aug 02 Javascript
Vue 自定义指令功能完整实例
Sep 17 Javascript
Javascript设计模式之原型模式详细
Oct 05 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
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
2007/03/15 PHP
php若干单维数组遍历方法的比较
2011/09/20 PHP
关于二级目录拖拽排序的实现(源码示例下载)
2013/04/26 PHP
php返回json数据函数实例
2014/10/09 PHP
php接口实现拖拽排序功能
2018/04/23 PHP
Javascript在IE或Firefox下获取鼠标位置的代码
2009/12/18 Javascript
js获取浏览器的可视区域尺寸的实现代码
2011/11/30 Javascript
js图片延迟加载的实现方法及思路
2013/07/22 Javascript
jQuery如何取id有.的值一般的方法是取不到的
2014/04/18 Javascript
javascript框架设计读书笔记之字符串的扩展和修复
2014/12/02 Javascript
关于JS中的apply,call,bind的深入解析
2016/04/05 Javascript
js css3实现图片拖拽效果
2017/03/04 Javascript
JavaScript实现星星等级评价功能
2017/03/22 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
如何用Node写页面爬虫的工具集
2018/10/26 Javascript
浅谈Vuex注入Vue生命周期的过程
2019/05/20 Javascript
详解vuex之store源码简单解析
2019/06/13 Javascript
详解为element-ui的Select和Cascader添加弹层底部操作按钮
2020/02/07 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
微信小程序基于高德地图API实现天气组件(动态效果)
2020/10/22 Javascript
在Python的web框架中中编写日志列表的教程
2015/04/30 Python
python处理html转义字符的方法详解
2016/07/01 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
对python:print打印时加u的含义详解
2018/12/15 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
2020/03/25 Python
python使用多线程+socket实现端口扫描
2020/05/28 Python
python求numpy中array按列非零元素的平均值案例
2020/06/08 Python
解决django migrate报错ORA-02000: missing ALWAYS keyword
2020/07/02 Python
浅析HTML5 Landmark
2020/09/11 HTML / CSS
DNA测试:Orig3n
2019/03/01 全球购物
西班牙在线光学:Visual-Click
2020/06/22 全球购物
讲文明懂礼貌演讲稿
2014/09/11 职场文书
2015年学校教研室主任工作总结
2015/07/20 职场文书
情侣餐厅的创业计划书范本!
2019/07/26 职场文书
Java各种比较对象的方式的对比总结
2021/06/20 Java/Android
Python移位密码、仿射变换解密实例代码
2021/06/27 Python