目录
  1. 1. 精灵图大小不匹配
    1. 1.1. 方法
    2. 1.2. 改进
精灵图缩放解决失真问题

精灵图大小不匹配

方法

精灵图资源:

这个图是一张400*400的精灵图

在这里也不再对精灵图做过多的阐述,直接看示例

页面:

<!-- 主要版心 -->
<div class="big-box">
<!-- 头部 -->
<header class="double_search">
<!-- 加一个容器 -->
<div class="double-search-box">
<a href="#" class="icon-logo"></a>
<form action="">
<span class="icon-search"></span>
<input type="search" placeholder="占位符">
</form>
<a href="#" class="login">登录</a>
</div>
</header>
</div>

CSS:

.jd_search .jd-search-box .icon-logo {
position: absolute;
left: 0;
top: 0;
width: 60px;
height: 40px;
/*引用精灵图*/
background: url("../images/sprites.png") no-repeat 0 -206px;

}

很明显,精灵图太大了,那么为了保证图片的正常显示,又保证图片不失真,将对精灵图进行缩放

.jd_search .jd-search-box .icon-logo {
position: absolute;
left: 0;
top: 0;
width: 60px;
height: 40px;

background: url("../images/sprites.png") no-repeat 0 -103px/200px 200px;

}

注意,对精灵图的缩放使,同时对精灵图的截取也得相应的改变

如果存在很多个地方都需要用到精灵图,且大小都不是很匹配,那么每一个样式都要写就有点冗余,因此可以提取公共部分,进行更改

改进

公共CSS

/* 使用精灵图的公用样式 */
/* 选取可能需要用到精灵图的类 */
[class^="icon-"],
[class*=" icon-"] {
background-repeat: no-repeat;/*拒绝重复*/
background-image: url("../images/sprites.png");/*引用精灵图*/
background-size: 200px 200px;/*图像的缩放*/
}

CSS

.jd_search .jd-search-box .icon-logo {
position: absolute;
left: 0;
top: 0;
width: 60px;
height: 40px;
background-position: 0 -103px;/*精灵图的定位*/

}

.jd_search .jd-search-box form .icon-search {
width: 20px;
height: 20px;
position: absolute;
left: 70px;
top: 10px;
background-position: -60px -109px;/*精灵图的定位*/
}

文章作者: Jachie Xie
文章链接: https://xjc5772.github.io/2020-08/02/%E5%AD%A6%E4%B9%A0/%E5%89%8D%E7%AB%AF%E5%AD%A6%E4%B9%A0/%E7%A7%BB%E5%8A%A8Web/%E7%B2%BE%E7%81%B5%E5%9B%BE%E7%BC%A9%E6%94%BE%E8%A7%A3%E5%86%B3%E5%A4%B1%E7%9C%9F%E9%97%AE%E9%A2%98/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 XJC&Blog
打赏
  • 微信
  • 支付宝

评论