【问题标题】:PIE CSS works in IE9 but not IE8PIE CSS 适用于 IE9 但不适用于 IE8
【发布时间】:2013-05-14 01:56:47
【问题描述】:

对于这个项目,我使用的是 Tomcat 7,并已将其配置为服务于 htc,内容类型为 text/x-component

<?xml version="1.0" encoding="UTF-8"?>
<web-app ...>
    ...
    <mime-mapping>
            <extension>htc</extension>
            <mime-type>text/x-component</mime-type>
    </mime-mapping>
</web-app>

由于某种原因,它在 IE9(渐变、阴影、圆角)中有效,但在 IE8 中无效,根本看不到任何有效的 CSS3。在样式/tracxe 样式下的开发人员控制台中,我看到了behavior,但我没有看到像-pie-background 这样的东西。那是问题吗?

可能是什么原因,它在 IE9 中运行但在 IE8 中运行似乎很奇怪。我不认为我需要不同的设置或类似的东西? 1 个元素的 CSS:

#masthead {
  background: #0E0E0E;
  background: #0e0e0e;
  background: -moz-linear-gradient(center top, #7d7d7d 0%, #0e0e0e 100%);
  background: -webkit-linear-gradient(top, #7d7d7d 0%, #0e0e0e 100%);
  background: -o-linear-gradient(top, #7d7d7d 0%, #0e0e0e 100%);
  background: -ms-linear-gradient(top, #7d7d7d 0%, #0e0e0e 100%);
  background: linear-gradient(top, #7d7d7d 0%, #0e0e0e 100%);
  -pie-background: linear-gradient(top, #7d7d7d 0%, #0e0e0e 100%);
  behavior: url(/owmw/web/css/PIE.htc);
  height: 35px;
  border: 1px solid #000000;
  color: #FFFFFF;
  position: relative;
  text-align: center;
  margin: 0px auto;
}

我在IE8兼容模式下使用IE10,有关系吗?

【问题讨论】:

  • 您可以使用不同版本的实际浏览器下载 Windows 的虚拟机。也许下载带有 IE8 组合的 XP 或 Win7 并使用它进行测试,看看它是否有所作为? modern.ie/en-us/virtualization-tools#downloads
  • 您使用的是download page(v1.0.0 稳定版或v2.0 beta1)中的“官方”版本之一吗?或者您是否偶然使用了来自GitHub project 的分支/标签之一?您是否在 JavaScript 控制台/网络窗格中看到任何错误或 404?
  • 我认为我正在使用 v1。但是问题似乎可以通过使用标准模式X-UA-Compatible IE=edge 解决。 IE 默认使用 quirks 吗?
  • 哦,X-UA-Compatible 似乎只修复了 IE10 兼容模式下的问题。即使我在开发人员工具中将其设置为 IE8,它也可能使它使用 IE10 渲染器?所以问题依然存在。 PIE 在 IE9 中有效,但在 IE8 中无效

标签: css internet-explorer-8 css3pie


【解决方案1】:

我也遇到了同样的问题,以下是我的问题的原因:

  • 我为 DIV 元素使用了错误的定位。
  • 我在behavior 中定位了错误的路径。

从您的代码来看,问题似乎在于定位错误的路径。
behavior: url(/owmw/web/css/PIE.htc);

修复: 而是尝试引用 css 文件夹中的 PIE.htc 文件并使其看起来像 behavior: url(PIE.htc);

使用behavior: url(owmw/web/css/PIE.htc);

查看behavior property

我可能错了,但这解决了我的问题。

即使我尝试使用behavior: url(../owmw/web/css/PIE.htc);,但没有成功。

从您的 cmets 看来,您正在使用 X-UA-Compatible 作为修复程序,并且它只能通过 IE10 兼容模式工作。

!--  Force IE to use the latest version of its rendering engine -->  
<meta http-equiv="X-UA-Compatible" content="IE=edge">

通过告诉 IE 在您的页面中使用其渲染引擎的最新版本。 如果您的用户在 IE8 浏览器中打开?这肯定会失败。

你可以在MSDN Library查看这个。

希望你能理解。

【讨论】:

  • 我尝试了除 div 定位之外的所有方法。我改变了 div 的位置:relative --> 一切正常!谢谢!
猜你喜欢
  • 2012-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-01
相关资源
最近更新 更多