图片适配
img 标签的图片适配
后端返回的图片
前端写死的图片
html
<img src="默认图片" srcset="图片地址A 2.x, 图片地址B 3.x" />
如果浏览器不支持srcset, 则会显示src的图片, 否则如果浏览器的 dprdpr>=2 && dpr<3, 则显示图片地址A, 如果dpr>=3, 则显示图片地址B
css 背景图片的适配
通过 -webkit-image-set适配
css
.bg {
background-image: url(images/a.png);
background-image: -webkit-image-set(url(images/a2x.png) 2x, url(images/a3x.png) 3x);
background-size: 100% 100%;
}
通过媒体查询器适配
css
@media all and (-webkit-min-device-pixel-ratio: 2) {
.bg {
background-image: url(images/a2x.png);
}
}
@media all and (-webkit-min-device-pixel-ratio: 3) {
.bg {
background-image: url(images/a3x.png);
}
}
scss 定义 mixin 来简化
scss
/**
不同设备采用多倍图
图片命名风格:
普通图片: xx.png
2倍图: xx@2x.png
3倍图: xx@3x.png
调用示例:
div{
width:30px;
height:20px;
background-size:30px 20px;
background-repeat:no-repeat;
@include bgImage('special_1');
}
*/
@mixin bgImage($url) {
background-image: url($url + '.png');
@media (-webkit-min-device-pixel-ratio: 2), (min-device-pixel-ratio: 2) {
background-image: url($url + '@2x.png');
}
@media (-webkit-min-device-pixel-ratio: 3), (min-device-pixel-ratio: 3) {
background-image: url($url + '@3x.png');
}
}