我是FE,也是Fe

          前端來源于不斷的點滴積累。我一直在努力。

          統計

          留言簿(15)

          閱讀排行榜

          評論排行榜

          position:fixed在IE6下不起作用的修正原理以及實現

          position:fixed能可以是元素不隨滾動條滾動而滾動,固定在視口中,在網頁設計中這種效果經常用到。通常不考慮IE6的代碼是:

          <body>
          <div id="" class="" style="position:fixed; right:20px; top:20px;border:solid 1px blue;">
          	fixed??
          </div>
          <div style="height:1000px;">mock page content<div>
          </body>

           

          主流的做法有兩種,一種使用expression表達式,在頁面滾動時重新設計元素的top屬性:

          <body>
          <div id="" class="" style="position:fixed; right:20px; top:20px;border:solid 1px blue; _position:absolute;_top:expression(parseInt(document.documentElement.scrollTop,10)+20+'px');">
          	fixed??
          </div>
          <div style="height:1000px;">mock page content<div>
          </body>

          這種方法比較直接,但是每次滾動都重新計算元素的位置很消耗性能,而且頁面比較復雜的時候,會出現“抖動”的現象。

          另外一種方法當你弄明白是才發現奇妙無窮,是否可以改變頁面的滾動條滾動的元素呢?滾動條默認滾動的是body元素。如果滾動的是一個div,而需要固定定位的元素并不在這個div中的話,自然就不會隨著滾動條的滾動而滾動。

          <body>
          <style type="text/css">
          		html,body,#content{height:100%;overflow:auto;padding:0px;margin:0px;}
          		#fixed{position:fixed; right:20px; bottom:20px; border:solid 1px  blue;_position:absolute;}
          	</style>
          <div id="content" class="">
          	<div id="" class="" style="background-color:#ccc;height:1000px;">
          		mock page content
          	</div>
          </div>
          <div id="fixed" class="">
          	fixed content
          </div>
          </body>

          設置一個div與body等高等寬,將頁面內容都放到這個div中。這樣頁面滾動條其實是這個div的滾動條。然后在body下放上position:fixed的元素。這樣就大功告成了。

          這基本是一個白話版的解決辦法了。基本是原理和簡單實現,更多的細節可以參考:

          http://www.qianduan.net/fix-ie6-dont-support-position-fixed-bug.html

          posted on 2011-05-16 15:37 衡鋒 閱讀(2727) 評論(1)  編輯  收藏 所屬分類: Web開發

          評論

          # re: position:fixed在IE6下不起作用的修正原理以及實現[未登錄] 2012-08-28 14:04 vic

          人才啊! 偶像啊! 創意啊有木有!  回復  更多評論   

          主站蜘蛛池模板: 汾西县| 道真| 泰顺县| 泗阳县| 安图县| 尼玛县| 奈曼旗| 安丘市| 博爱县| 宜宾市| 长武县| 建水县| 安仁县| 安阳市| 蓝山县| 林甸县| 中西区| 九寨沟县| 泽普县| 冷水江市| 庄河市| 拉孜县| 宝应县| 泾川县| 清新县| 时尚| 鲁山县| 楚雄市| 平阳县| 名山县| 安平县| 含山县| 肇庆市| 遵义县| 习水县| 邵武市| 扶风县| 玉山县| 商丘市| 赤壁市| 柳州市|