【发布时间】:2015-04-21 16:29:52
【问题描述】:
在 Macbook Pro Retina 和 Windows 上使用 Chrome 时,我在尝试为非视网膜和视网膜显示器显示图像时遇到了一些奇怪的行为。
我有一些方形图片,CSS如下:
/* NON RETINA */
/* style for all square images so no need to repeat */
.sq-img-small {
background-size: 239px 239px;
width:239px;
height:239px;
float:left;
margin:0 0 20px 10px;
}
.sq-img-small.img-small-1 {
background: url('../images/squares/food1.jpg') no-repeat top left;
}
/* RETINA */
@media
(-webkit-min-device-pixel-ratio: 2),(-moz-device-pixel-ratio: 2), (min-resolution: 192dppx) {
.sq-img-small.img-small-1 {
background: url('../images/squares/food1.2x.jpg') no-repeat top left;
}
我的 HTML 是:
<div class="sq-img-small img-small-1"></div>
非视网膜显示图像完美,但视网膜图像显示不正常。我无法在 div 中看到整个图像 - 它似乎已经放大了图像,所以我只能看到一小部分。
如果我添加:
background-size: 239px 239px;
width:239px;
height:239px;
进入视网膜.sq-img-small.img-small-1 块然后它显示正常,但我认为我不需要这样做,因为它应该从早期继承,对吗?还是@media 块以某种方式影响了继承?
===============更新===============
经过进一步调查,似乎为所有方形图像设置样式,然后指定每个图像的路径,当不在 @media 块内时工作正常,但当我在一个内执行相同操作时不起作用。
【问题讨论】: