傲视苍穹H5_VIP专题HTML+CSS技术文

JS中得各种宽度

2015-06-11  本文已影响1299人  Miss____Du

window与document的这些属性的值会不太兼容,会在后面补充说。
一下效果展示忽略IE9之前浏览器,主要考虑主流浏览器与手机端的效果。

以上这三对属性都是针对dom元素的,可以测得元素的宽度,但是,细心的会发现,以上三种并没有提供获得width(100)的方法,所以可以使用window.getComputedStyle(div,null).getPropertyValue('width');
这样获得就是100。


其实比较难理解的是像window、document.body、document. documentElement这两个dom对象在获得他们的宽度时会有各种问题。
现在开始撕一下这其中的神奇。。。

document对象有个属性compatMode ,它有两个值:
BackCompat 对应quirks mode
CSS1Compat 对应strict mode
IE6以前的浏览器就是第一种渲染模式,导致IE6要是想获得可视窗口(clientWidth)时,必须使用document.body.clientWidth这个来访问。IE6我实习的公司已经放弃啦。

综上:抛弃document.body的用法,使用document. documentElement。
属性 安卓机 iphone
window.innerWidth 980px 980px
..clientWidth 980px 980px
属性 安卓机微信 iphone微信
window.innerWidth 320px 980px
..clientWidth 980px 980px

总是会有捣蛋鬼。。。
综上:如果想要获得手机端页面的可视宽度,建议使用
document. documentElement.clientWidth

在下一篇,笔记中,会对这个属性在meta标签的不同设置下的值进行分析。

BTW:我又回来,好好学习啦!

上一篇下一篇

猜你喜欢

热点阅读