搜尋
首頁web前端html教學詳解讀IE6中的position:fixed問題

詳解讀IE6中的position:fixed問題

May 21, 2018 pm 03:21 PM
fixedieposition

這篇文章主要介紹了詳解IE6中的position:fixed問題與隨滾動條滾動的效果的相關資料,希望通本文能幫助到大家,需要的朋友可以參考下

# #詳解IE6中的position:fixed問題與隨滾動條滾動的效果

#前言:

在《【jQuery】相容IE6的滾動監聽》 (點擊開啟連結)提及到解決IE6fixed問題,具體是要引入一個js文件,還要聲明一條腳本就為這個p聲明fixed定位去解決,起始這樣很不好啊。引入的Javascript不好管理之餘,還要在head聲明引入javascript,之後又要給這個p聲明一個id,之後又要在腳本出弄一條聲明,實在是煩死了。

使用position:fixed無非是想做出如下的效果。

基本上position:fixed是在IE7以上的所有瀏覽器都是沒有問題的:

IE8:

野狐禪FireFox :

然而由於IE6中直接就沒有position:fixed屬性,要做出如下的效果:

##只能利用position: absolute;加一段在css樣式中執行的javascript腳本去解決。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
  <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <title>Untitled Document</title> 
    <style type="text/css">     
      .fixedbox { 
        background: #69C; 
        height: 60px; 
        width: 100px;         
        position: fixed; 
        bottom: 100px; 
        /*IE6实现position: fixed;*/ 
        /*等价于position: fixed;虽然代码好长,但是根本就不用管*/ 
        _position: absolute;         
        _top: expression(eval( 
        document.documentElement.scrollTop + document.documentElement.clientHeight-this.offsetHeight- 
        (parseInt(this.currentStyle.marginTop,10)||0)- 
        (parseInt(this.currentStyle.marginBottom,10)||0))); 
        /*等价于position: fixed;虽然代码好长,但是根本就不用管*/ 
        _margin-bottom:100px;/*设置位置,不要用bottom,而是改用margin-bottom,margin-xx来实现*/ 
      } 
    </style> 
  </head> 
  <body> 
    <p style="float:left;width:80%;min-height:100px;"> 
      <p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p> 
      <p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p> 
      <p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p> 
      <p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p>    
    </p> 
    <p style="float:left;width:20%;min-height:100px;"><p class="fixedbox"></p></p> 
    <p style="clear:both"></p>     
  </body> 
</html>

上述程式碼,對於IE6的樣式,前面都加上了_,_的部分是IE6特定的重寫樣式聲明,具體見《【CSS】關於CSS樣式中的!important、*、 _符號》(點擊開啟連結)

而實際上,在IE6中,以下的CSS:

.fixed{ 
  position: absolute;        
  top: expression(eval( 
    document.documentElement.scrollTop + document.documentElement.clientHeight-this.offsetHeight- 
    (parseInt(this.currentStyle.marginTop,10)||0)- 
    (parseInt(this.currentStyle.marginBottom,10)||0))); 
}

等價於其它瀏覽器的:

.fixed{ 
  position: fixed; 
}

當然IE6中實作position:fixed的CSS可能在某些瀏覽器中不正常,因此在各個樣式前面補上一條底線_,表示僅在IE6中執行。

同時IE6應有的如上樣式之後,不要像其它瀏覽器用right,top,left,bottom去定位,而是用margin-bottom,margin-left,margin-right去設定被position:fixed的p的位置,

這裡調節p的位置的時候還需要注意,由於上述的相容IE6的CSS利用到top的屬性,所以設定margin-top是不管用,如果你要設定這個p在浮動的時候,離瀏覽器的頂部是多少的話,你應該這樣寫:

.fixed{ 
  /*IE6实现position: fixed;*/ 
  _position: absolute;         
  _top: expression(eval(document.documentElement.scrollTop)); 
  _margin-top:100px; 
}

這裡關於_top的程式碼之所以短了這麼多,是因為無須用document.documentElement.clientHeight來獲取瀏覽器顯示視窗大小。

而-this.offsetHeight-(parseInt(this.currentStyle.marginTop,10)||0)-(parseInt(this.currentStyle.marginBottom,10)||0)一切是為了微調更精確,如果你不想要也可以不加,只是有一點視覺效果而已。

再者,上述的程式碼,大家可以看到,關於fixedbox這個東西,我並沒有設定其right,left,是因為,我想讓其在滾動條滾動的時候,依舊能夠保持父級p的float:left屬性。

就是,右邊的藍色色塊,與左邊一大堆sss,依舊是80%與20%的分割。

上面是我整理給大家的,希望今後對大家有幫助。

相關文章:

JavaScript在IE9之前版本中記憶體洩漏問題(詳細總結)

JavaScript hasOwnProperty() 函數(圖文教程,附有程式碼範例)

JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的區別和應用場景(實用技巧)

#

以上是詳解讀IE6中的position:fixed問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
HTML標籤和元素是同一件事嗎?HTML標籤和元素是同一件事嗎?Apr 28, 2025 pm 05:44 PM

文章解釋說,HTML標籤是用於定義元素的語法標記,而元素是完整的單位,包括標籤和內容。他們一起工作以構建網頁。查拉克計數:159

&lt; head&gt;的意義是什麼。 &&lt;身體&gt;在html中標記?&lt; head&gt;的意義是什麼。 &&lt;身體&gt;在html中標記?Apr 28, 2025 pm 05:43 PM

本文討論了Lt; Head&gt; &&lt;身體&gt; HTML中的標籤,它們對用戶體驗的影響以及SEO的影響。正確的結構增強了網站功能和搜索引擎優化。

&lt; strong&gt;,lt; b&gt;有什麼區別標籤和lt; em&gt;,&lt; i&gt;標籤?&lt; strong&gt;,lt; b&gt;有什麼區別標籤和lt; em&gt;,&lt; i&gt;標籤?Apr 28, 2025 pm 05:42 PM

本文討論了HTML標籤,和和關注其語義與表現用途及其對SEO和可訪問性的影響之間的差異。

請說明如何指示HTML中文檔使用的字符集?請說明如何指示HTML中文檔使用的字符集?Apr 28, 2025 pm 05:41 PM

文章討論了在HTML中指定字符,重點介紹了UTF-8。主要問題:確保正確顯示文本,防止亂七八糟的字符,並增強SEO和可訪問性。

HTML中的各種格式標籤是什麼?HTML中的各種格式標籤是什麼?Apr 28, 2025 pm 05:39 PM

本文討論了用於構建和造型Web內容的各種HTML格式標籤,強調了它們對文本外觀的影響以及語義標籤對可訪問性和SEO的重要性。

HTML元素的' ID”屬性與'類”屬性之間有什麼區別?HTML元素的' ID”屬性與'類”屬性之間有什麼區別?Apr 28, 2025 pm 05:39 PM

本文討論了HTML的“ ID”和“類”屬性之間的差異,重點是它們的獨特性,目的,CSS語法和特異性。它解釋了它們的使用如何影響網頁樣式和功能,並為

HTML中的'類”屬性是什麼?HTML中的'類”屬性是什麼?Apr 28, 2025 pm 05:37 PM

本文解釋了HTML“類”屬性在分組樣式和JavaScript操縱元素中的作用,將其與唯一的“ ID”屬性進行對比。

HTML中有哪些不同類型的列表?HTML中有哪些不同類型的列表?Apr 28, 2025 pm 05:36 PM

文章討論了html列表類型:訂購(&lt; ol&gt;),無序(&lt; ul&gt;)和描述(&lt; dl&gt;)。專注於創建和样式列表以增強網站設計。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。