使用IE8进行CSS定位 - 不支持表达式

时间:2010-09-29 15:48:32

标签: html css internet-explorer internet-explorer-8

我有以下代码:

<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#right的宽度的方法:

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

不幸的是,这不再适用于IE了! IE8和firefox忽略表达式。我怎样才能克服这个问题?

非常感谢提前!

2 个答案:

答案 0 :(得分: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来达到相同的效果。

答案 1 :(得分:0)

是的,CSS表达式很慢,它们会影响性能。与他们一起,他们也妥协安全。易江指定的解决方案必须有效。

现在所有浏览器都会使用相同的条款。要了解更多关于表达式被删除的原因,请查看http://techbookshelf.blogspot.in/2012/11/css-expressions-in-ie8-and-higher.html