2010-09-29 34 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