首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用视网膜像素比媒体查询的Internet Explorer 8

使用视网膜像素比媒体查询的Internet Explorer 8
EN

Stack Overflow用户
提问于 2013-12-12 05:03:59
回答 1查看 448关注 0票数 0

我正在使用SASS/Compass构建一个响应式网站,我还包括视网膜图标(使用生成的sprites)。我在我的.scss中加入了一个混合的图标。

我的视网膜图标混合:

代码语言:javascript
复制
// Retina icons
@mixin sprite-background($name, $xpos: 0px, $ypos: 0px, $xpos2x: $xpos, $ypos2x: $ypos, $size: image-width(sprite-file($icons, $name))) {
  background-image: sprite-url($icons);
  background-position: sprite-position($icons, $name, $xpos, $ypos);
  background-repeat: no-repeat;
  display: block;

  @media all and ($pixel-ratio) {
    @if (sprite-position($icons, $name) != sprite-position($icons2x, $name)) {
      background-position: $xpos2x $ypos2x;
    }
    @include background-size($size auto);
    background-image: sprite-url($icons2x);
  }
}

变量:

代码语言:javascript
复制
$pixel-ratio: "-webkit-min-device-pixel-ratio: 1.5), (-o-min-device-pixel-ratio: 3/2), (min-device-pixel-ratio: 1.5";

用法:

代码语言:javascript
复制
.selector {
  @include sprite-background(clock_small, 0px, 2px, 0px, -1013px, 45px);
}

我遇到的问题是,Internet Explorer8使用我的retina sprite作为background-image,但在background-size上失败了。我知道IE8不支持background-size,所以它被忽略了,但这意味着我的图标定位不正确。

使用javascript,你可以找到你当前的像素率:

代码语言:javascript
复制
alert(window.devicePixelRatio);

此警报: Internet Explorer中的undefined。为什么我的"retina media query“接受undefined作为一个有效的数字,并执行它的css?有什么解决方法吗?

EN

回答 1

Stack Overflow用户

发布于 2013-12-12 05:12:29

如果devicePixelRatio未定义,则可以为其分配缺省值

代码语言:javascript
复制
window.devicePixelRatio = window.devicePixelRatio || 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20529874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档