DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS詳解 >> 學習筆記 如何解決IE6 position:fixed固定定位問題
學習筆記 如何解決IE6 position:fixed固定定位問題
編輯:CSS詳解     

你知道解決IE6 position:fixed固定定位問題方法嗎,這裡和大家簡單分享一下,希望本文的介紹能讓你有所收獲。

解決IE6 position:fixed固定定位問題

就像你所遇到的問題一樣,IE6有太多的bug讓制作網頁的人頭疼。這篇文章介紹的是介紹我的如何解決IE6不支持position:fixed;屬性的辦法。

◆關於position:fixed;屬性生成絕對定位的元素,相對於浏覽器窗口進行定位。
元素的位置通過“left”,“top”,“right”以及“bottom”屬性進行規定。

position:fixed;可以讓網頁上的某個元素固定在一個絕對的位置,即使拉動滾動條位置也不發生變化。在LOO2K博客右下角的那個置頂的小按鈕就是用了這個CSS屬性實現的

一般的position:fixed;實現方法以我的博客為例,在右下角<divid="top">...</div>這個Html元素使用的CSS代碼如下:

  1. #top{
  2. position:fixed;
  3. bottom:0;
  4. right:20px;
  5. }

實現讓<divid="top">...</div>元素固定在浏覽器的底部和距離右邊的20個像素。

◆在IE6中實現position:fixed;的辦法剛剛提過,在IE6中是不能直接使用position:fixed;。你需要一些CSSHack來解決它。當然,IE6的問題也不僅僅position:fixed;

相同的還是讓<divid="top">...</div>元素固定在浏覽器的底部和距離右邊的20個像素,這次的代碼是:

  1. #top{
  2. position:fixed;
  3. _position:absolute;
  4. bottom:0;
  5. right:20px;
  6. _bottom:auto;
  7. _top:expression(eval(document.documentElement.scrollTop+document.
  8. documentElement.clIEntHeight-this.offsetHeight-(parseInt(this.
  9. currentStyle.marginTop,10)||0)-(parseInt(this.currentStyle.marginBottom,10)||0)));
  10. }

right跟left屬性可以用絕對定位的辦法解決,而top跟bottom就需要用上面的表達式來實現。其中在_position:absolute;中的_符號只有IE6才能識別,目的是為了區分其他浏覽器。

上面的只是一個例子,下面的才是最重要的代碼片段:

◆使元素固定在浏覽器的頂部:

  1. #top{
  2. _position:absolute;
  3. _bottom:auto;
  4. _top:expression(eval(document.documentElement.scrollTop));
  5. }

◆使元素固定在浏覽器的底部:

  1. #top{
  2. _position:absolute;
  3. _bottom:auto;
  4. _top:expression(eval(document.documentElement.scrollTop+document.
  5. documentElement.clIEntHeight-this.offsetHeight-(parseInt(this.currentStyle.marginTop,10)
  6. ||0)-(parseInt(this.currentStyle.marginBottom,10)||0)));
  7. }

◆這兩段代碼只能實現在最底部跟最頂部,你可以使用_margin-top:10px;或者_margin-bottom:10px;修改其中的數值控制元素的位置。

position:fixed;閃動問題現在,問題還沒有完全解決。在用了上面的辦法後,你會發現:被固定定位的元素在滾動滾動條的時候會閃動。解決閃動問題的辦法是在CSS文件中加入:

  1. *Html{
  2. background-image:url(about:blank);
  3. background-attachment:fixed;
  4. }

其中*是給IE6識別的。

到此,IE6的position:fixed;問題已經被解決了。現在LOO2K這個博客上的固定定位就是使用的這個辦法解決IE6固定定位問題的。

學習筆記 如何解決IE6 position:fixed固定定位問題
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved