我们使用旧版IE7开发了一个应用程序。
代码包含" CSS表达式"但这在IE11中无效。
示例代码:
div#GridViewContainer
{
position: relative !important;
width: 1000px !important;
overflow: auto !important;
}
_:-ms-fullscreen, :root .staticHeader
{
position: relative !important;
top: expression(this.offsetParent.scrollTop);
z-index: 99 !important;
}
_:-ms-fullscreen, :root .StaticColumn
{
z-index: 90 !important;
border: 1px solid gray !important;
position: relative !important;
left: expression(document.getElementById("GridViewContainer").scrollLeft);
}
如何在IE11中开展工作以及其他方式?
如何更改我的代码?
答案 0 :(得分:3)
或强>
如果您感到懒惰或不想使用JS,请尝试设置文档模式:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
将其添加到<head>...</head>
部分。
请注意,这可能会破坏您可能使用过的IE7不支持的属性。
为什么要避免使用CSS表达式:
从Internet Explorer 11开始,CSS表达式不再存在 已启用Internet区域中加载的网页。 CSS表达式是 支持在其他区域(例如Intranet区域)中加载的页面 当页面以IE7标准模式或IE5怪癖模式呈现时。
此外,
不幸的是,CSS表达式带来的性能损失是 相当可观,因为浏览器会重新评估每个表达式 触发事件,例如窗口调整大小,鼠标移动等 上。 CSS表达式的糟糕表现是他们的原因之一 现在已在IE 8中弃用。如果你在你的中使用过CSS表达式 页面,你应该尽一切努力删除它们并使用其他 实现相同功能的方法
有条件的评论应该按照 Leo Caseiroin 的建议在他的回答中有所作为,它实际上会在IE7 +上节省一些带宽。
答案 1 :(得分:1)
我建议你用你的黑客分割你的文件,你可以使用IE的条件评论,如下:
<link href="css/ie11-without-hacks.css" rel="stylesheet">
<!--[if lt IE 7]>
<link href="css/ie7hacks.css" rel="stylesheet">
<![endif]-->
关于条件评论: https://msdn.microsoft.com/en-us/library/ms537512(v=vs.85).aspx