情況如下:(PS:紅框表示iframe的區域,灰色的長方框表示上面提到的width:100%的元素,需要在IE6下看效果。)
當灰色的框的高度大於iframe的高度時出現縱橫向滾動條(IE6下)。
當灰色的框的高度小於iframe的高度時效果正常。
解決方案一:給內頁加上樣式:html { overflow-y: scroll; }
當灰色的框的高度大於iframe的高度時僅出現縱向滾動條,效果正確。
當灰色的框的高度小於iframe的高度時縱向滾動條仍然顯示(不可用狀態),有瑕疵。
解決方案二:給內頁加上樣式:html { overflow-x: hidden; overflow-y: auto; }
當灰色的框的高度大於iframe的高度時僅出現縱向滾動條,但右邊內容顯示不完全(PS:裡面文字內容是“這是個高為200px的div”),效果不正確。
當灰色的框的高度小於iframe的高度時沒有滾動條出現,效果正確。
解決方案三:經過了多次嘗試仍然沒有發現純css的完美解決方案,而我們追求的是最完美的效果。既然純css解決不 了,我們只好搬出js來了,通過前面的測試我們發現灰色框高度小於iframe的高度時不需要做任何處理效果正確,而灰色框高度大於iframe的高度時 方案一是完美的。於是,我們的js有如下思路:當浏覽器為IE6且內容高度比iframe高時給html標簽加入方案一的樣式。下面是jQuery的代 碼:(不用jQuery的話思路一樣。)
復制代碼代碼如下:
$(function(){
if($.browser.msie&&$.browser.version=="6.0"&&$("html")[0].scrollHeight>$("html").height()) $("html").css("overflowY","scroll");
});
當灰色的框的高度大於iframe的高度時僅出現縱向滾動條,效果正確。
當灰色的框的高度小於iframe的高度時效果正確。
學會開心每一天(: