乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      完美解決IE6不支持position:fixed的bug

       看見就非常 2013-02-08

        廢話不多說,先看一下下面這段代碼:

      <!DOCTYPE html>
      <html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <title>IE6 position:fixed bug</title>
      <style>
      *{padding:0;margin:0}
      p{height:2000px}
      #gs{border:1px solid #000;position:fixed;right:30px;top:120px}
      </style>
      <!--[if IE 6]>
      <style type="text/css">
      html{overflow:hidden}
      body{height:100%;overflow:auto}
      #gs{position:absolute}
      </style>
      <![endif]-->
      </head>
      <body>
      <div id="rightform">
          <p>11111111111111111</p>
          <input id="gs" name="gs" type="text" value=""  />
      </div>
      </body>
      </html>

        以上這段代碼在網(wǎng)上很常見,通過設(shè)置html{overflow:hidden}body{height:100%;overflow:auto}來實現(xiàn)ie6下position:fixed效果,但這種辦法有個缺陷,那就是:這會使頁面上原有的absolute、relation都變成fixed的效果,在這里我就不做demo了,如果有懷疑,可以自己去試驗一下。

        于是我找了下資料,發(fā)現(xiàn)可以通過一條Internet Explorer的CSS表達式(expression)來完美的實現(xiàn)ie6下position:fixed效果,css代碼如下:

      /* 除IE6瀏覽器的通用方法 */
      .ie6fixedTL{position:fixed;left:0;top:0}
      .ie6fixedBR{position:fixed;right:0;bottom:0}
      /* IE6瀏覽器的特有方法 */
      * html .ie6fixedTL{position:absolute;left:expression(eval(document.documentElement.scrollLeft));top:expression(eval(document.documentElement.scrollTop))}
      * html .ie6fixedBR{position:absolute;left:expression(eval(document.documentElement.scrollLeft+document.documentElement.clientWidth-this.offsetWidth)-(parseInt(this.currentStyle.marginLeft,10)||0)-(parseInt(this.currentStyle.marginRight,10)||0));top:expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight-this.offsetHeight-(parseInt(this.currentStyle.marginTop,10)||0)-(parseInt(this.currentStyle.marginBottom,10)||0)))}

        上面代碼可以直接使用了,如果要設(shè)置元素懸浮邊距,要分別為設(shè)置兩次,比如我要讓某個元素距頂部10個像素,距左部也是10個像素,那就要這樣子寫:

      /* 除IE6瀏覽器的通用方法 */
      .ie6fixedTL{position:fixed;left:10px;top:10px}
      /* IE6瀏覽器的特有方法 */
      * html .ie6fixedTL{position:absolute;left:expression(eval(document.documentElement.scrollLeft+10));top:expression(eval(document.documentElement.scrollTop+10))}

        這樣一來,IE6下實現(xiàn)position:fixed的效果解決了,而且也不會影響到其他的absolute、relation,但還有一個問題,就是懸浮的元素會出現(xiàn)振動

      IE有一個多步的渲染進程。當(dāng)你滾動或調(diào)整你的瀏覽器大小的時候,它將重置所有內(nèi)容并重畫頁面,這個時候它就會重新處理css表達式。這會引起一個丑陋的“振動”bug,在此處固定位置的元素需要調(diào)整以跟上你的(頁面的)滾動,于是就會“跳動”。
      解決此問題的技巧就是使用background-attachment:fixed為body或html元素添加一個background-image。這就會強制頁面在重畫之前先處理CSS。因為是在重畫之前處理CSS,它也就會同樣在重畫之前首先處理你的CSS表達式。這將讓你實現(xiàn)完美的平滑的固定位置元素!

        然后我發(fā)現(xiàn)background-image無需一張真實的圖片,設(shè)置成about:blank就行了。

        下面附上完整代碼

      /* 除IE6瀏覽器的通用方法 */
      .ie6fixedTL{position:fixed;left:0;top:0}
      .ie6fixedBR{position:fixed;right:0;bottom:0}
      /* IE6瀏覽器的特有方法 */
      /* 修正IE6振動bug */
      * html,* html body{background-image:url(about:blank);background-attachment:fixed}
      * html .ie6fixedTL{position:absolute;left:expression(eval(document.documentElement.scrollLeft));top:expression(eval(document.documentElement.scrollTop))}
      * html .ie6fixedBR{position:absolute;left:expression(eval(document.documentElement.scrollLeft+document.documentElement.clientWidth-this.offsetWidth)-(parseInt(this.currentStyle.marginLeft,10)||0)-(parseInt(this.currentStyle.marginRight,10)||0));top:expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight-this.offsetHeight-(parseInt(this.currentStyle.marginTop,10)||0)-(parseInt(this.currentStyle.marginBottom,10)||0)))}

        至于demo我想大家都看到了吧:)

      IE6完美兼容position:fixed
      IE6完美兼容position:fixed
      手機收藏該文章
      作者:胡尐睿丶
      如果你讀了我的文章,覺得有幫助,你可以選擇:支付寶贊助
      本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。
      標(biāo)簽: css, expression, position, fixed, 懸浮, ie6
      博主上一篇:【轉(zhuǎn)載】通過JS破解圖片防盜鏈限制
      博主下一篇:借助Google Translate API實現(xiàn)網(wǎng)站多國語言翻譯功能
      首頁上一篇:實例講解遺傳算法——基于遺傳算法的自動組卷系統(tǒng)【實踐篇】
      首頁下一篇:(譯)如何使用cocos2d制作一個打地鼠的游戲:(第二部分。完)
      posted @ 2011-05-20 18:42 胡尐睿丶 閱讀(34189) 評論(38) 編輯 收藏
        
      #1樓 2011-05-20 21:33 sxwgf  
      這種方法用了expression,請教lz有不用expression的方法嗎?
        
      #2樓[樓主] 2011-05-20 22:49 胡尐睿丶  
      @sxwgf
      不用expression就是我文章開頭那短代碼,設(shè)置html{overflow:hidden}和body{height:100%;overflow:auto},但這樣會造成頁面上所有absolute都變成fixed的效果,所以還是推薦用expression
        
      #3樓 2011-05-21 07:21 劉覽器  
      文章很有深度,簽定完畢。。。
        
      #4樓 2011-05-21 09:52 john23.net  
      恩學(xué)習(xí)了

        
      #5樓 2011-05-21 10:57 鈞梓昊逑  
      我認為這不算是BUG
        
      #6樓 2011-05-21 11:45 超級奶崽  
        
      #7樓 2011-05-21 12:17 賣身葬小強  
      禁用javascript這段css表達式會不會失效?
        
      #8樓[樓主] 2011-05-21 12:43 胡尐睿丶  
      @賣身葬小強
      這問題不錯,我沒測試過,應(yīng)該是會失效的,我沒考慮到,看來還是得留個備用方案,當(dāng)IE6在禁用js的情況下,采用我文章中的第一種辦法
        
      #9樓 2011-05-21 21:49 西狐  
      堅定不移的,拋棄IE6
        
      #10樓 2011-08-16 15:24 ilbefun  
      請問50%邊距要怎么寫呢
        
      #11樓[樓主] 2011-08-16 15:30 胡尐睿丶  
      @ilbefun
      什么叫50%邊距?
        
      #12樓 2011-08-30 22:08 翼飛  
      relative寫成relation了 汗一個 這個真不應(yīng)該有
        
      #13樓[樓主] 2011-08-30 22:23 胡尐睿丶  
      @翼飛
      我的錯,絕對是我的錯。
        
      #14樓 2011-09-22 10:04 Rex.He  
      真沒看出有什么完美的..expression基本都不會使用的...
      樓主一點都不考慮性能問題...
        
      #15樓[樓主] 2011-09-22 10:08 胡尐睿丶  
      @Rex.He
      真要考慮性能,那就只能屏蔽IE6了,或者不管IE6了,但這真的是為用戶考慮么?這又回到的開頭的問題,我們考慮性能的最終目的還不是為了用戶考慮。
        
      #16樓 2011-09-22 10:15 Rex.He  
      @胡尐睿丶
      屏蔽IE6? 做東西就是為了滿足客戶需求...
      expression性能損耗太大,使用position:absolute模擬會比較好
        
      #17樓[樓主] 2011-09-22 10:19 胡尐睿丶  
      @Rex.He
      是用position:absolute模擬的啊,文章里我都寫的很清楚了,但是top,left的值你要怎么計算?還不是要用JS實時計算出來。不然你怎么實現(xiàn)?
        
      #18樓 2011-09-22 10:23 Rex.He  
      expression 和 JS計算模擬 在性能上的問題
      在于頻率,expression在你任何位置任何時候微小的移動都會計算很多次,你可以測試下.... JS只針對在你的使用范圍內(nèi),所以前端才不建議使用expression
        
      #19樓[樓主] 2011-09-22 10:33 胡尐睿丶  
      @Rex.He
      原來是這樣,受教了,我一直以為expression和js沒區(qū)別,就干脆把js代碼用expression寫在css里了
        
      #20樓 2011-11-23 10:49 nono_jia  
      會和其他的js有沖突..單用還是可以的..
        
      #21樓 2012-02-21 13:58 Zigzag  
      真正最完美的方式,假設(shè)box需要fixed,如下
      1
      2
      3
      <div class="box">
       這是需要絕對定位的文字。
      </div>

      使用以下css來實現(xiàn)ie6的fixed:
      1
      2
      3
      4
      5
      6
      7
      .box {
        position: fixed;
        
      }
      * html .box { 
        position: absolute;
      }
        
      #22樓 2012-04-05 10:45 象牛  
      引用Zigzag:
      真正最完美的方式,假設(shè)box需要fixed,如下
      1
      2
      3
      <div class="box">
       這是需要絕對定位的文字。
      </div>

      使用以下css來實現(xiàn)ie6的fixed:
      1
      2
      3
      4
      5
      6
      7
      .box {
        position: fixed;
        
      }
      * html .box { 
        position: absolute;
      }

      厲害?。。。。。?/div>
        
      #23樓[樓主] 2012-04-05 10:51 胡尐睿丶  
      @Zigzag
      你這哪里解決ie6 position: fixed; 的問題了?
        
      #24樓[樓主] 2012-04-05 10:51 胡尐睿丶  
      @象牛
      演員?
        
      #25樓 2012-04-05 10:54 象牛  
      引用Zigzag:
      真正最完美的方式,假設(shè)box需要fixed,如下
      1
      2
      3
      <div class="box">
       這是需要絕對定位的文字。
      </div>

      使用以下css來實現(xiàn)ie6的fixed:
      1
      2
      3
      4
      5
      6
      7
      .box {
        position: fixed;
        
      }
      * html .box { 
        position: absolute;
      }

      呃。。。。。。。。發(fā)現(xiàn)問題了。。。發(fā)現(xiàn)IE6下不會隨屏幕動。。?;蛘呤俏覜]有理解你的意思吧
        
      #26樓 2012-04-13 10:03 象牛  
      引用胡尐睿丶:
      @象牛
      演員?

      你說話用的著這么偏激嗎?
        
      #27樓 2012-04-28 10:39 前端組qianduanzu.com  
      這樣比較耗資源,有沒有更好的解方案呢?
        
      #28樓[樓主] 2012-04-28 10:41 胡尐睿丶  
      @前端組qianduanzu.com
      不管IE6是最好的解決方案=D
        
      #29樓 2012-04-28 10:42 前端組qianduanzu.com  
      @胡尐睿丶
      哈哈,我博客就是。沒管它IE6
        
      #30樓 2012-05-03 10:28 chloe_t  
      QAQ可惜老板用的IE6啊…………
        
      #31樓 2012-06-04 11:14 天地人廣告  
      為什么我的下面的定位也總是跟著動??? WHY??
        
      #32樓[樓主] 2012-06-04 11:16 胡尐睿丶  
      @天地人廣告
      fixed不就是跟隨滾動的
        
      #33樓 2012-06-04 11:18 天地人廣告  
      @胡尐睿丶
      我只要頂部跟著滾??! 我用你的方法下面的那些用了絕對定位的也是和頂部一樣的滾了!
        
      #34樓[樓主] 2012-06-04 11:19 胡尐睿丶  
      @天地人廣告
      檢查你的樣式,肯定有沖突了
        
      #35樓 2012-06-04 11:24 天地人廣告  
      .ie6fixedTL{position:absolute;left:expression(eval(document.documentElement.scrollLeft+10));top:expression(eval(document.documentElement.scrollTop+10))}
      是只要把這句放上就行了吧! 把.ie6fixedTL 改成我的??
        
      #36樓 2012-10-11 14:52 iamzou  
      Body如果本身有背景呢 而且不能fixed呢?
        
      #37樓 2012-10-25 22:33 偷懶小小貓  
      使用以下css來實現(xiàn)ie6的fixed:
      7 .box {
      position: fixed;
      }
      * html .box {
      position: absolute;
      }
      * html .box 這種寫法是專門針對IE6 嗎 可是我記得hack是_box{。。}吧
        
      #38樓 2013-02-02 10:39 Moon_Jacob  
      想不到今天在這邊把遇到的問題解決了,哈哈
      ps:當(dāng)初沒和你們好好學(xué)習(xí)真是我的損失啊

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多