2012-05-01 69 views
1

是否有堅實的解決方案來實現position: fixed,這將在所有主流瀏覽器中得到支持?跨瀏覽器對位置的支持:固定

我爲我最近的代碼感到驕傲,它解決了我在FF中的所有問題,直到我在IE中查看它。似乎有很多黑客周圍,但其中一些似乎相互矛盾...

我需要在頁面上定位幾個元素相對於窗口。

這段代碼在FF中效果很好,但在IE中甚至不在v.9中。即使當我滾動頁面時,該元素應該被固定在左上角。在IE中,它會滾動頁面內容。

#myElement{ 
    left:0; 
    top:0; 
    position:fixed; 
    height:35px; 
    width:290px; 
    background-color: #f5f5f5; 
    z-index: 999 
} 

感謝您的幫助。

+1

根據[caniuse.com](http://caniuse.com/#feat=css-fixed),它得到了廣泛的支持 - 您能更具體地瞭解您遇到的問題嗎? –

+1

發佈你的html和css,這個問題可能與固定的位置沒有任何關係。您使用的是哪個版本的IE? – Jrod

+0

更新了帶有代碼的問題。 – santa

回答

3

正如我懷疑,您正在使用無效DOCTYPE這是發送IE到怪癖模式。要使IE保持標準模式,您需要確保使用有效的DOCTYPE。所以,如果你想使用HTML 4.01過渡應該是:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 

不過,我會用更短和更簡單的HTML5 DOCTYPE

<!DOCTYPE html> 
+0

我已經添加了DOCTYPE,但我認爲我的問題與FF升級有關。重新啓動後,一切恢復正常。 – santa

+0

@santa:我相當確定這不是IE升級造成的FF升級。因爲我也可以看到問題,並且我可以看到它被無效的文檔類型拋入怪癖模式。 – tw16

2

只有IE6不支持position:fixed,它不是主要的瀏覽器。 (請參見瀏覽器支持here。)

+0

我在IE9中遇到過問題... – santa

+0

是什麼樣的問題?代碼在哪裏?我們不是媒介。 IE9支持固定位置 – Meliborn

0

嘗試使用position:relative;或位置:絕對;而不是位置:固定; 這些在IE9中。然而,許多時間位置屬性給出了不希望的結果,因此,我總是喜歡儘可能地避免它。請檢查Chrome/Webkit也。

-1

如果還有人有這個問題。

在樣式表中輸入以下內容。所有瀏覽器都會覆蓋位置:絕對位置:固定,你會得到你想要的。 IE 6不理解>運算符,所以它永遠不會看到position:fixed並使用position:absolute。該網頁可在所有瀏覽器中使用,但在IE6中不盡人意。

htmltag 
    {position: absolute;} 

body>htmltag 
    {position:fixed;}