document.compatMode的CSS1compat使用介绍_javascript技巧

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

时间: 2024-12-13 08:01:48

document.compatMode的CSS1compat使用介绍_javascript技巧的相关文章

document.compatMode的CSS1compat使用介绍

 这篇文章主要介绍了document.compatMode的CSS1compat使用,需要的朋友可以参考下 document.compatMode    BackCompat:标准兼容模式关闭.浏览器宽度:document.body.clientWidth:    CSS1Compat:标准兼容模式开启. 浏览器宽度:document.documentElement.clientWidth.  代码如下: var d = document,  dd = d.documentElement,  d

document.compatMode介绍_javascript技巧

今天在ext中看到 document.compatMode的使用,感觉这个对于我们开发兼容性的web页面还是很有帮助,我们都知道,IE对盒模型的渲染在 Standards Mode和Quirks Mode是有很大差别的,在Standards Mode下对于盒模型的解释和其他的标准浏览器是一样,但在Quirks Mode模式下则有很大差别,而在不声明Doctype的情况下,IE默认又是Quirks Mode.所以为兼容性考虑,我们可能需要获取当前的文档渲染方式. document.compatMo

document.documentElement和document.body区别介绍_javascript技巧

区别: body是DOM对象里的body子节点,即 <body> 标签: documentElement 是整个节点树的根节点root,即<html> 标签: 没使用DTD情况即怪异模式BackCompat下: 复制代码 代码如下: document.documentElement.clientHeight=0document.body.clientHeight=618 使用DTD情况即标准模式CSS1Compat下: 复制代码 代码如下: document.documentEle

document.getElementById介绍_javascript技巧

把你的大脑当做浏览器执行下面的代码两次,分别是IE6和IE9: 复制代码 代码如下: function testFunc(){ alert('test') } $(function(){ var g = document.getElementById , w = window.testFunc ; //g alert(typeof(g)); alert(String(g)); alert(g instanceof Object); alert(g instanceof Function); //

document.addEventListener使用介绍_javascript技巧

document.addEventListener("事件名称", 函数, false); 复制代码 代码如下: function 某函数(event){ // 方法执行 } addEventListener里最后一个参数决定该事件的响应顺序: 如果为true事件执行顺序为 addEventListener ---- 标签的onclick事件 ---- document.onclick 如果为false事件的顺序为 标签的onclick事件 ---- document.onclick

document节点对象的获取方式示例介绍_javascript技巧

复制代码 代码如下: <html> <head> <title></title> <script> /* document节点对象的获取方式: */ //第一种,通过id获取 function documentDemo(){ var tableNode = document.getElementById("tab_id"); tableNode.style.border = "5px solid #00ff00&qu

document.designMode的功能与使用方法介绍_javascript技巧

将文档设置为设计模式        要将整个文档设置为设计模式,可以对文档对象本身设置 designMode 属性.当文档处于设计模式时,将不运行脚本.这样,似乎在文档内设置一个按钮来打开或关闭设计模式是个好注意,但这样做没有作用.当用户打开它后,它将保持在设计模式状态.当他们下次单击此按钮时,它将被选定而不是被单击,他们再次单击它,将能够编辑它的值.这就是为什么如果要使用设计模式最好对框架或 IFrame 中的文档设置 designMode 属性的原因.下例展示如何为 IFrame 中的文档打

js document.write()使用介绍_javascript技巧

在载人页面后,浏览器输出流自动关闭:在此之后,任何一个对当前页面进行操作的document.write()方法将打开-个新的输出流.它将清除当前页面内容(包括源文档的任何变量或值).因此.假如希望用脚本生成的HTML替换当前页面,就必须把HTML内容连接起来赋给一个变量.使用一个document.write()方法完成写操作,不必清除文档并打开一个新数据流,一个document.write()调用就可完成所有的操作. 关于document.write()方法还有一点要说明的是它的相关方法docu

document.forms[].submit()使用介绍_javascript技巧

document.forms['exportServlet'].submit(); (1)document.forms:表示获取当前页面的所有表单 (2)document.forms[0]:表示获取当前页面的第一个表单 (3)document.forms['exportServlet']:表示获取当前页面的name="exportServlet"的表单 (4)submit()表示提交函数