IE6 css position:fixed無效的解決辦法

在通常css代碼編寫的時候,IE6,IE6-IE8均可以使用本身的特有的css屬性來改良某些bug,在解決IE6 fixed時就須要這種方式來作。css

首先須要進行瀏覽器版本判斷,當爲小於等於IE6的版本時,載入IE6兼容性csshtml

注意,這段代碼的位置最好寫在其餘全部css導入代碼以後express

<!--[if lte IE 6]>
<link type="text/css" rel="stylesheet" href="lteIE6Hack.css" />
<![endif]-->

而後在lteIE6Hack.css編寫本身的代碼瀏覽器

爲了讓ie6支持fixed,須要使用ie6 css表達式語言網絡

/*設置html,body背景屬性,使得ie6被「fixed」後,當瀏覽器滾動時不會出現彈跳效果(抖動)*/
html,html body{
  background-image:url(about:blank);
  background-attachment:fixed;
}

div.ie6_fixed{
   position:absolute;/*只有fixed才能調整div在「盒子模型」中的z-Index*/
   z-Index:100;/*設置垂直索引,只要大於當前div的容器便可。*/
   left:expression(eval(document.documentElement.scrollLeft)) + 10; /*向右偏移10個像素*/
   top:expression(eval(document.documentElement.scrollTop))  /**緊貼window頂部**/
}

以上是一種方案,可是有時爲了簡單,不在判斷瀏覽其版本不爲ie6專門制定css的狀況下作到fixed,可使用ie6 css兼容屬性來完成,這樣作也能夠減小瀏覽器請求網絡的次數,但這種方式也會增長代碼量。url

下面代碼一種有效的方式,common.css
spa

html,body{
  padding:0px;
  margin:0px;
  _background-image:url(about:blank); /*使用 「_」只有ie6能識別,"*"的話IE6-IE8都能識別*/
  _background-attachment:fixed;
}

div.ie6_fixed{
   position:fixed;
   left:10px;
   top:0px;
   
   _position:absolute;
   _left:expression(eval(document.documentElement.scrollLeft)) + 10; 
   _top:expression(eval(document.documentElement.scrollTop)) 
   
   z-Index:100;
}

導入時再也不判斷瀏覽器版本code

<link type="text/css" rel="stylesheet" href="common.css" />

------------------------------------------------------------------------------------htm

這兩種方式都可使用,至於你喜歡哪一種,我只能說「我不知道」索引

相關文章
相關標籤/搜索