2010-09-29 33 views
0

我有以下代碼:CSS定位與IE8 - 表達不支持

<html> 
<head> 
<style type="text/css"> 
DIV#left 
{ 
z-index: 100; 
position:absolute; 
left:0px; 
top:0px; 
width: 100px; 
height: 100px; 
background-color: #e7e7e7; 
} 
DIV#right 
{ 
z-index: 100; 
position:absolute; 
left:100px; 
top:0px; 
width: 100px; 
height: 100px; 
background-color: #e20074; 
} 
</style> 
</head> 

<body> 
<div id="left"> 
1 
</div> 
<div id="right"> 
2 
</div> 
</body> 

</html> 

但我需要正確的DIV部分擴大到頁面(寬度= 100%)的結束 因此,這裏是我如何改變寬度爲DIV#右:

width: expression(parseInt(document.body.offsetWidth)-100); 

不幸的是,這不適用於IE瀏覽器! IE8和Firefox忽略表達式。我怎樣才能克服這個問題?

非常感謝提前!

+2

哦,不,現在您必須設計正確的網頁! – Welbog 2010-09-29 15:54:59

回答

1

您不應該使用像這樣的CSS表達式 - 它們很慢,很老,最重要的是專有,這意味着它不適用於除IE之外的其他任何東西。

這裏有一個簡單的解決方案,在Firefox,IE8和IE7的作品[但不是IE6雖然]:給予正確div一個right: 0迫使div一路向外延伸至該頁面的末尾:

#right { 
    position: absolute; 
    left: 100px; 
    top: 0; 
    right: 0; 
    height: 100px; 
} 

請參見:http://jsfiddle.net/hEeVY/

如果您使用表達式什麼,它可能會更好過使用JavaScript來達到同樣的效果。

+0

嗨,對不起,但這是行不通的,你可以試試這裏: – 2010-09-29 16:25:37

+0

http://www.w3schools.com/html/tryit.asp?filename=tryhtml_intro – 2010-09-29 16:25:53

+0

@wa_liu不,我看不到 - 那代碼操場thingy只對您可見,因爲它沒有保存。如果你需要向我展示任何東西,你可以嘗試使用jsfiddle。 – 2010-09-29 16:27:55

0

是的,CSS表達很慢,它們會影響性能。與他們一起,他們也與安全妥協。由易江指定的解決方案必須工作。

現在所有的瀏覽器都將採用相同的條件。要詳細瞭解爲什麼表達式被刪除,請檢查http://techbookshelf.blogspot.in/2012/11/css-expressions-in-ie8-and-higher.html

+1

歡迎來到Stack Overflow!感謝您發佈您的答案!請務必仔細閱讀[自助推廣常見問題](http://stackoverflow.com/faq#promotion)。另請注意,每次鏈接到您自己的網站/產品時,您都必須*發佈免責聲明。 – 2013-02-08 17:50:00