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

JD *_*cks 188 css internet-explorer

是否有任何已知的方法使CSS样式background-size在IE中工作?

Dan*_*Dan 312

有点晚了,但这也很有用.有一个IE过滤器,适用于IE 5.5+,您可以申请:

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)

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

规格:AlphaImageLoader过滤器@microsoft

  • 我想知道为什么MS不只是使用CSS实现该功能.非常感谢! (12认同)
  • 缩放方法虽然没有保持比例.所以你的元素与你的图像具有相同的比例是最好的. (10认同)
  • 如果您在我们定义的元素中使用链接和按钮,那些链接和按钮将无法工作.有谁知道解决这个问题的方法? (8认同)
  • 哪个IE版本支持这个? (2认同)
  • 我不得不添加`position:relative; z-index:999`用于输入,a,这样的div内的按钮 (2认同)
  • 值得注意的是,如果应用于`body`或`html`元素,此属性可以打破滚动,链接和其他页面交互. (2认同)
  • 注意:这不适用于伪元素http://stackoverflow.com/a/10669986 (2认同)

Lou*_*émi 45

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

  • 根据jquery.backgroundSize.js的文档,该插件已弃用,他们建议使用[background-size-polyfill](https://github.com/louisremi/background-size-polyfill). (12认同)

Sco*_*las 21

感谢这篇文章,我对跨浏览器幸福的全面了解是:

<style>
    .backgroundpic {
        background-image: url('img/home.jpg');
        background-size: cover;
        filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(
        src='img/home.jpg',
        sizingMethod='scale');
    }
</style>
Run Code Online (Sandbox Code Playgroud)

我已经处理了这段代码已经很久了,但是我想添加更多的浏览器兼容性,我已将此附加到我的CSS以获得更多浏览器兼容性:

-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
Run Code Online (Sandbox Code Playgroud)

  • 这使我的ie8显示两次背景图像 - 一个具有缩放尺寸,第二个是大尺寸背景. (5认同)

met*_*ron 5

甚至更晚,但这也很有用.有一个jQuery-backstretch-plugin,你可以用作背景大小的polyfill:cover.我想用jQuery抓取css-background-url属性并将其提供给jQuery-backstretch插件一定是可能的(并且相当简单).好的做法是使用modernizr测试背景大小支持,并使用此插件作为后备.

这里提到了backstretch-plugin .这个jQuery-backstretch-plugin-site就在这里.

以类似的方式,您可以制作一个jQuery插件或脚本,使背景大小适合您的情况(背景大小:100%)和IE8-.所以回答你的问题:是的,有一种方法,但是没有即插即用的解决方案(即你必须自己做一些编码).

(免责声明:我没有彻底检查backstretch-plugin,但它似乎与背景大小相同:封面)


Dor*_*ian 5

有一个很好的polyfill:louisremi/background-size-polyfill

引用文档:

将backgroundsize.min.htc上传到您的网站,以及将发送IE所需的mime类型的.htaccess(仅限Apache - 它内置于nginx,节点和IIS).

在CSS中使用background-size的任何地方,添加对此文件的引用.

.selector { 
    background-size: cover;
    /* The url is relative to the document, not to the css file! */
    /* Prefer absolute urls to avoid confusion. */
    -ms-behavior: url(/backgroundsize.min.htc);
}
Run Code Online (Sandbox Code Playgroud)