Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Internet explorer 8 IE8背景尺寸像素polyfil?_Internet Explorer 8_Background Size - Fatal编程技术网

Internet explorer 8 IE8背景尺寸像素polyfil?

Internet explorer 8 IE8背景尺寸像素polyfil?,internet-explorer-8,background-size,Internet Explorer 8,Background Size,我需要使CSS3的背景大小在IE8中正常工作。有很多javascript库,但它们扩展了选项“cover”和“contain”,而不是px值。当我使用图像精灵时,我需要设置以像素为单位的背景大小 这是我的代码演示。sprite图像是600px 400px,但我将背景大小设置为300px 200px,这样在高密度显示器上看起来清晰 <a class="one">Link one</a> <a class="two">Link two</a> a {

我需要使CSS3的背景大小在IE8中正常工作。有很多javascript库,但它们扩展了选项“cover”和“contain”,而不是px值。当我使用图像精灵时,我需要设置以像素为单位的背景大小

这是我的代码演示。sprite图像是600px 400px,但我将背景大小设置为300px 200px,这样在高密度显示器上看起来清晰

<a class="one">Link one</a>
<a class="two">Link two</a>

a {
    overflow: hidden;
    text-indent: -9999px;
    display: block;
    width: 58px;
    height: 58px;
    background: url("https://cdn.tutsplus.com/webdesign/uploads/legacy/tuts/373_sprites/angry_birds.png");
    background-size: 300px 200px; 
}    a.one {
    background-position: 0 0;
}
a.two {
    background-position: 0 -56px;
}

我可以扩展对IE8的支持而不必创建和维护第二个图像精灵吗

根据,可能会有所帮助

希望这有助于


--兰斯

你唯一能做的就是:

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

-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(
src='image.gif',
sizingMethod='scale')";

但是,如果您使用sprite图像,这可能会导致问题。

根据具体情况,使用伪元素的解决方案可能会起作用,但您没有详细解释具体情况? 只需添加一个指定大小的伪元素,让它以精灵为背景

通过位置绝对/相对和z指数的正确组合,这可能会起作用

如果你能提供更多关于你想要达到的目标的信息,我就能提供更好的帮助

编辑:

好了,我现在有了解决办法。有点出乎意料:看起来很脏。 但当你想在IE8中做一些有趣的事情时,这就是你得到的

a {
    overflow: hidden;
    text-indent: -9999px;
    display: block;
    width: 58px;
    height: 58px;
    position: relative;
}
a:before {
    content: "";
    background: url(https://cdn.tutsplus.com/webdesign/uploads/legacy/tuts/373_sprites/angry_birds.png);
    zoom: .5;
    text-indent: 0;
    overflow: hidden;
    width: 600px;
    height: 400px;
    position: absolute;
    left: 0;
    top: 0;
}
a.one:before {
    background-position: 0 0;
}
a.two:before {
    background-position: 0 -112px;
}
这样做的缺点是,您必须计算缩放因子,而不是只写下您想要的尺寸。此外,背景位置将与全尺寸背景相关


我在上面的代码中所做的有什么不清楚的地方吗?

这增加了对“cover”和“contain”的支持。我需要设置px的背景尺寸。我更新了我的问题。我正在使用精灵,所以我需要设置px中的背景大小。是否需要使用伪内容,或者我可以在需要执行类似操作时使用zoom.5规则?在某些情况下,zoom会触发奇怪的行为。因此,不可能有一个笼统的答案。伪元素是最省钱的方法。