CSS3 PIE:圆角减慢 IE9,即使它本机支持它们

Posted

技术标签:

【中文标题】CSS3 PIE:圆角减慢 IE9,即使它本机支持它们【英文标题】:CSS3 PIE: rounded corners slow down IE9, even though it supports them natively 【发布时间】:2012-02-04 07:30:32 【问题描述】:

我正在使用CSS3 PIE 为 IE7/8 添加对圆角的支持。我发现当页面上有很多带有圆角的元素时,启用 PIE 时 IE9 中的性能会显着下降:滚动变得迟钝,简单的悬停效果(如链接颜色变化)变得显着延迟等。

但是根据 PIE 自己的文档,如果浏览器本身支持您正在使用的特定 CSS3 功能,那么 PIE 在 IE9 中“什么都不做”。那么理论上,如果我只使用border-radius(IE9支持),启用PIE应该不会影响性能。

这可能是什么原因造成的?

【问题讨论】:

【参考方案1】:

我将-pie-poll: false; 添加到页面上应用了 PIE 的所有元素中,这大大加快了 IE9 的速度,使其与 IE7/8 相当。我相信默认情况下,PIE 每 250 毫秒轮询一次所有元素以进行更新;将 -pie-poll 设置为 false 可防止在元素被渲染和/或与之交互之前发生任何更新。

这仍然不能解释为什么 PIE 会轮询 IE9 中不使用任何非原生 CSS3 功能的元素,但它确实解决了问题。

【讨论】:

【参考方案2】:

尝试使用条件 cmets,这样 IE9 甚至不会加载代码。

<!--[if lte IE 8]>
  // CSS3 pie scripts
<![endif]-->

【讨论】:

我考虑过,但我仍然希望能够在 IE9 中使用 PIE,因为它本身不支持线性渐变等功能。

以上是关于CSS3 PIE:圆角减慢 IE9,即使它本机支持它们的主要内容,如果未能解决你的问题,请参考以下文章

是否会为其他浏览器加载 CSS3PIE .htc 文件,即使他们不需要?

9个助力CSS开发的网站

9个助力CSS开发的网站

IE9以下浏览器对CSS3的常用兼容处理

CSS3PIE - IE6 - IE8 有多轻松

css圆角矩形的制作