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的影響
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章