当页面在IE 9中打开时,并不是所有的CSS样式都应用在一个框架中,这使它进入了Quirks模式



如果网页加载在框架中,则不会应用其所有样式。它对div元素使用以下样式表:

div.super{
    position:absolute;
    font-family: Helvetica;
    font-size: 0.75em;
    padding:4px;
    overflow:auto;
    width:280px;
    min-height:110px;
    background:rgb(219, 142, 83);
    box-shadow: 10px 10px 5px rgb(150, 142, 155);
    border:2px solid rgb(219, 142, 83);
    -moz-border-radius:10px;
    -webkit-border-radius:10px;
    border-radius:10px;
}

作为应用

<link href="/Styles/hart_divs.css" type="text/css" rel="stylesheet" />

我的目标浏览器是IE 9(一种公司策略标准),它适用于除box-shadowborder-radius之外的所有内容当在新窗口中打开同一页面时,所有内容都将应用。FF应用框架内的所有内容。

有什么方法可以强制IE9在框架内应用阴影和圆角吗?

哦,我的文档类型是:

<!DOCTYPE html>

编辑:框架集中似乎有什么东西正在将IE9置于Quircks (Page Default)文档模式。当切换到IE9模式时,样式表将被整体应用。

顶层框架集文档缺少我添加的文档类型。现在,它不是默认进入Quirks模式,而是进入IE7模式,尽管我尝试添加

<meta http-equiv="X-UA-Compatible" content="IE=9" />

到可能涉及的每一个页面:顶级框架集、加载我的框架的导航框架等。我的文档一直都有那个元标记。

所以,在调查了所有这些之后,问题是,如何迫使IE9退出IE7模式?

这个http://msdn.microsoft.com/en-us/library/ff405803%28v=vs.85%29.aspx没有帮助。

到目前为止,唯一有效的方法是进入菜单Tools/Compatibility View Settings并取消选中Display Intranet sites in Compatibility View复选框。

仍在寻找一个程序化的解决方案,因为这只是一个针对每个用户的解决方案。

如果这是在您的intranet中,也许您可以与管理员交谈,以便通过组策略设置兼容性模式:

http://msdn.microsoft.com/en-us/library/dn321457.aspx

http://blogs.msdn.com/b/asiatech/archive/2013/10/23/how-to-add-web-site-to-compatibility-view-list-via-gpo.aspx

最新更新