IE 8:后台大小修复

Tho*_*mas 138 css xhtml filter background-image width

我试图向IE添加背景大小,但它根本不起作用:

HTML

<h2 id="news">Notícias <img src="white-marker.png" alt="" /></h2>
Run Code Online (Sandbox Code Playgroud)

CSS:

div#content h2#news {
    background: url('../images/news-background.jpg') no-repeat;
    background-size: 100%;
    border-radius: 20px;
    color: #fff;
    margin: 20px 0 0 20px;
    padding: 8px 20px;
    width: 90%;
    -moz-background-size: 100%;
    -moz-border-radius: 20px;
    -webkit-background-size: 100%;
    -webkit-border-radius: 20px;
}
Run Code Online (Sandbox Code Playgroud)

过滤器有什么问题?

Sot*_*kra 147

由'Dan'在类似的帖子中发布,如果您没有使用精灵,可能会有一个修复:

如何在IE中制作背景大小的工作?

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(
src='images/logo.gif',
sizingMethod='scale');

-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(
src='images/logo.gif',
sizingMethod='scale')";
Run Code Online (Sandbox Code Playgroud)

但是,这会缩放整个图像以适合分配的区域.因此,如果您使用精灵,这可能会导致问题.

注意
过滤器有缺陷,分配区域内的任何链接都不再可点击.

  • 过滤器有一个主要缺陷,因为它冻结了分配区域内的任何链接. (21认同)
  • 另请注意,图像路径必须相对于文档而不是CSS文件. (13认同)
  • 不不不.此过滤器不保持图像比例,而是拉伸图像以填充容器!它相当于"background-size:100%100%".在IE8中打开它以查看它http://jsfiddle.net/2VgjD/1/embedded/result/ (5认同)
  • 有可能告诉ie比例缩放图片吗? (2认同)

Lou*_*émi 89

我创建了jquery.backgroundSize.js:一个1.5K jquery插件,可以用作"封面"和"包含"值的IE8后备.看看演示.

解决您的问题可能很简单:

$("h2#news").css({backgroundSize: "cover"});
Run Code Online (Sandbox Code Playgroud)

  • 请注意,此插件显然已被https://github.com/louisremi/background-size-polyfill取代 (16认同)

Muh*_*san 20

我也发现了另一个有用的链接.这是一个像这样使用的背景黑客

.selector { background-size: cover; -ms-behavior: url(/backgroundsize.min.htc); }
Run Code Online (Sandbox Code Playgroud)

https://github.com/louisremi/background-size-polyfill


use*_*332 12

我使用上面的过滤器解决方案,ie8.但是..为了解决冻结链接问题,还要做到以下几点:

background: no-repeat center center fixed\0/; /* IE8 HACK */
Run Code Online (Sandbox Code Playgroud)

这解决了我的冻结链接问题.