日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

IE瀏覽器盒子模型的滾動條問題

很多情況下我們會碰到這樣的情況,一個div,里面有一個table,這個table需要列很多很多的數(shù)據(jù),有時候會超過容器的寬度,設計div寬高的時候,把一切都計算進去了,并且讓overflow-x的值為auto,以便讓列長總和超過容器寬度的時候,在瀏覽器中能出滾動 。這樣設計以為沒問題了 ??墒侨?shù)據(jù)一瞧,不對,因為有了橫向滾動條,結(jié)果在IE瀏覽器里面連豎滾條都出現(xiàn)了,說明內(nèi)容高度超過了容器高度 。
先看圖

IE瀏覽器盒子模型的滾動條問題


那么我們來看容器高度:
假如內(nèi)容固定,表格也固定,那么你可能設置成固定高度,但是假如表格下還有內(nèi)容,還正好取出來的數(shù)據(jù)不夠表格的最大行數(shù)據(jù)(比如每頁10行,結(jié)果一共才4行),那么會出現(xiàn)一大塊空白,所以可能更多的情況下你還是設置的是動態(tài)高度,其實就是100%啦 。
既然是100%,那么為什么出現(xiàn)了豎滾條呢?首先,只有在IE下才出現(xiàn)這個滾動條,那么顯然,肯定又是盒子模型對高寬的理解不同了 。
假如真實內(nèi)容高度現(xiàn)在是500Px,因為橫滾條(假定有12px)的出現(xiàn),W3C可能認為高度就是512px了,那么事情就解決了,容器是512,內(nèi)容是512 。
可是IE顯然不這么計算,你現(xiàn)在內(nèi)容高度是500px,那么我的100%算出來的就是500px,現(xiàn)在出現(xiàn)了橫滾條怎么辦?
1,它必須在容器里出現(xiàn)(本例中就是外圍的DIV);
2,只要一出現(xiàn),必須會把實際內(nèi)容追加成512px;
這樣就出現(xiàn)了上面的結(jié)果,計算的高度和實際高度不符,于是滾動條就出現(xiàn)了 。這時候來解決問題:
開始認為,既然這是不應該出現(xiàn)的滾動條,那么就讓它不顯示不結(jié)了?于是給容器加style:overflow-y:hidden;
結(jié)果一運行,不對,512px的內(nèi)容被你強制改成了500px還不讓滾動,必然有12px的內(nèi)容無法顯示,因為滾動條的級別比較高,所以不能顯示的其實就是內(nèi)容區(qū)的最后那12px,顯然不能這么做
最后沒辦法,只有先判斷它是否IE,(IE8引擎已經(jīng)有所改變,那就判斷IE7吧),然后再插入一行(具體幾行根據(jù)瀏覽器實際情況定,上述數(shù)字都是假的,為了描述方便),在這個時候,再讓滾動條不出現(xiàn),這樣問題就解決了,
在這種情況下,IE7事實上確實有部分內(nèi)容無法顯示,但無法顯示的是你插入的無意義的空行 。
插入的代碼你應該明白,是這種:



看效果:
IE瀏覽器盒子模型的滾動條問題


【IE瀏覽器盒子模型的滾動條問題】 正是我們要的,不是么 。

    推薦閱讀