移动端使用雪碧图

移动端使用雪碧图


前言

为了减少网络请求个数量,提高网站的访问速度,我们一般都会把一些小的图片合并成一张sprite图,然后根据background-position来进行定位。

在web端,通常先设置好图片的宽高,然后在psd视觉稿上测量出该图标的lefttop值,最后通过设置background-position 属性,就可以成功的显示出该图片。但是在移动端就不一样了,web端的单位统一为px,而移动端的单位为rem,并且各种手机的屏幕大小不一样,很难使用与web端相同的方法。

所以普遍的做法都是使用单张图片,然后使用 background-size: cover|100%|contain 来控制背景图的大小。其实这样会简单得多,但是如果图片太多,网速不好的情况下加载速度就惨不忍睹了。

解决方法

下面提供一个将 px 转化成 rem 的方法:

(1)先设置图标的宽高:

.icon {
	width: 0.76rem;
	height: 0.76rem;
}

(2)设置 background-size 属性:

查看sprite图的宽高,例如1072px*442p,直接除以100px,把px转化为rem,得到background-size: 10.72rem 4.42rem; 这样sprite图就可以根据font-size进行缩放了。

.icon {
		width: 0.76rem;
		height: 0.76rem;
		background-size: 10.72rem 4.42rem; 
}

(3)设置 background-position 属性

在视觉稿上测量出图标的 left, top 值,例如left-top为30px-30px,同样除以100将px转化为rem,得到background-position: 0.3rem 0.3rem,就可以准确的定位到完整的icon了。

.icon {
		width: 0.76rem;
		height: 0.76rem;
		background-size: 10.72rem 4.42rem; 
		background-position: 0.3rem 0.3rem;
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值