我在某些手机上遇到了一些背景问题。
该div的样式是:
#navPanel {
background: url('images/bg04.jpg');
box-shadow: inset -1px 0px 0px 0px rgba(255,255,255,0.25), inset -2px 0px 25px 0px rgba(0,0,0,0.5);
text-shadow: -1px -1px 1px rgba(0,0,0,1);
}
它在朋友iPhone 6上渲染得很好,如下所示:
当它在我的iPhone 5s上渲染时,背景图像会失真:
为什么背景图像会以这种方式呈现的任何想法?是否与设备的像素密度有关?
抱歉这些大图片。
我做了一个快速的小提琴,它正在按照需要进行渲染。
答案 0 :(得分:1)
我不明白为什么它看起来不同,因为我相信这两种设备都有视网膜显示。无论如何,您可以使用媒体查询来定位视网膜屏幕并提供高分辨率背景图像。
你当前的图片bg04.jpg是150x150,你需要找到/创建它的高分辨率版本。
@media
only screen and (-webkit-min-device-pixel-ratio: 2),
only screen and (min-resolution: 192dpi) {
#navPanel {
background-image: url('images/bg04@2x.jpg'); /* this image should be 300x300 */
background-size: 150px 150px;
}
}
或者快速尝试这样,但模式看起来会略有不同。
@media
only screen and (-webkit-min-device-pixel-ratio: 2),
only screen and (min-resolution: 192dpi) {
#navPanel {
background-image: url('images/bg04.jpg'); /* current one 150x150 */
background-size: 75px 75px; /* half */
}
}