今天在學習的時候,突然發現在IE6瀏覽器下,position:fixed不管用了:

而在其他瀏覽器(IE7+、firefox、opera、safari、chrome)下則正常顯示:

經過多次測試,原來不只在IE6下,在IE7、IE8瀏覽器下,若是文檔使用的是怪異(quirk)模式也會導致這個問題。這也難怪,當IE7、8使用怪異模式時,渲染引擎將以接近IE6的渲染模式來解析CSS。最后,我得出了以下結論:
IE6、IE7(quirk模式)、IE8(quirk模式) 瀏覽器將 'position' 特性的 fixed 值當作錯誤值處理。從而導致使用固定定位的元素使用 'position' 的默認值 static。即這個元素在 此時 變成了普通流中的元素,這必然會導致布局錯位等問題。
解決方案:在 IE6、IE7(quirk模式)、IE8(quirk模式)中為固定定位元素設置 '_position:absolute',再通過 JavaScript 腳本或者 CSS Expression 動態設置其偏移量,但是我發現只能實現在最底部和最頂部固定。要想設置具體的位置還需要配合_margin。
使元素固定在瀏覽器的頂部:
_margin修改其中的數值控制元素的位置。看到這里,你一定以為已經完事了。NO!還有bug:被固定定位的元素在滾動滾動條的時候會出現一閃一閃的情況。解決這個問題的辦法是在 CSS 文件中加入:
新聞熱點
疑難解答