我正在研究一个 WordPress 主题,并试图将启用视网膜的 CSS 查询合并到我的 CSS 文件中。
我想澄清一下,在更改所有背景图像之前,我已经正确设置了媒体查询。
- 我将所有背景图像的大小翻了一番,并使用“@2x”命名约定对它们进行了前缀。例如
icon-user@2x.png
。 - 我在我的代码中添加了一个 jQuery 函数来用 .css 的 CSS 类交换图像
hires
。 - 在我的 CSS 文档中,我有一个用于背景图像的普通 CSS 类。
普通 CSS 查询
.side-nav .arrow { background: url(../images/arrow-nav.png) no-repeat top left; width: 5px; height: 8px; display: inline-block; margin-left: 10px }
这是我为启用视网膜的设备更改 .side-nav .arrow 类的正确方法吗?在声明背景大小时,我是否保持原始较小图像的大小?
/* All Retina Ready devices larger than 1.5 pixel ratio */
@media only screen and (-moz-min-device-pixel-ratio: 1.5),
only screen and (-o-min-device-pixel-ratio: 3/2),
only screen and (-webkit-min-device-pixel-ratio: 1.5),
only screen and (min-device-pixel-ratio: 1.5) {
.side-nav .arrow {
background-image:url(../images/arrow-nav@2x.png);
-webkit-background-size:5px 8px;
-moz-background-size:5px 8px;
-o-background-size:5px 8px;
background-size:5px 8px
}
}
jQuery 代码
$(function () {
if (window.devicePixelRatio == 2) {
var images = $("img.hires");
/* loop through the images and make them hi-res */
for(var i = 0; i < images.length; i++) {
/* create new image name */
var imageType = images[i].src.substr(-4);
var imageName = images[i].src.substr(0, images[i].src.length - 4);
imageName += "@2x" + imageType;
/* rename image */
images[i].src = imageName;
}
}
});
谢谢