CSS的display属性对js获取元素宽高的影响

很多时候会用到js控制某个元素的display样式来实现它显示或不显示;但是对于这个元素的父元素来讲用js获取父元素的宽高时会出现问题。
比如:
<div id="wrap" class="">
    <div id="Layer" style="display:none" class="">        
    </div>
</div>
文档加载完毕的时候,Layer的display被设置成了none;这时候用js获取wrap的无论是offsetHeight还是 clientHeight都不包括Layer自身的高度,但是如果你用脚本把Layer的display属性动态设置成block;那么wrap的高度宽度就会自动加上Layer自身的高度,这对于做一些定位效果来讲是很麻烦的。
解决方法我测试通过的有:
A-在获取高宽之前设置Layer的block,但有时候这并不是你想要的
B-不用display控制显示状态,换用visibility,这个是比较好的方法,不用考虑css对于js的影响
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章