CSS3 PIE 不能在 IE 中缩放背景图像

Posted

技术标签:

【中文标题】CSS3 PIE 不能在 IE 中缩放背景图像【英文标题】:CSS3 PIE Not Scaling Background Images In IE 【发布时间】:2011-07-11 04:04:44 【问题描述】:

我的网站上有PIE,以便 IE 可以进行边框半径、投影等。一切都很好,直到我决定通过将常见的背景图像转换为 sprite 来加快网站加载速度,然后用 CSS 定位它们。这工作正常,直到您放大 IE。虽然 div、border-radius 和阴影可以很好地调整大小,但背景图像不会缩放并最终显示其他精灵图像。

有谁知道如何整理 PIE(通过 css 或弄乱行为)以便当用户更改页面缩放时它在 IE 中表现得很好?

【问题讨论】:

【参考方案1】:

不理想,但已经使用javascript从每个元素中删除了behavior属性:

<!--[if ie]>
<script type="text/javascript">
function removeBehavior()

  if((screen.deviceXDPI / screen.logicalXDPI) != '1')
  
    $("*").each(function()
      $(this).css("behavior", "none");
    );
  

removeBehavior();
window.onresize = removeBehavior;
</script>
<[endif]-->

该功能只会在 IE 中运行 - 它的作用是检查屏幕大小。如果不是 1(等于 100%),那么(使用 jQuery)遍历整个 dom 并删除行为属性(或至少将其设置为空值)。

然后我在第一个页面调用中调用该函数并将其添加到 onresize 事件中,以防用户在查看页面时更改缩放。

这并不理想,但它确实有效。

【讨论】:

以上是关于CSS3 PIE 不能在 IE 中缩放背景图像的主要内容,如果未能解决你的问题,请参考以下文章

CSS3 Pie 在 IE8 中不起作用

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

背景图像部分之间的间距

多个背景图像 IE8

Bootstrap Carousel - CSS3 PIE 打破指标循环

CSS3PIE - IE6 - IE8 有多轻松