CSS精灵图是什么,实现方式是怎样
Admin 2022-10-31 群英技术资讯 746 次浏览
这篇文章主要讲解了“CSS精灵图是什么,实现方式是怎样”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS精灵图是什么,实现方式是怎样”吧!首先,我们先介绍一下什么是精灵图:
先强调一点哈,精灵图和下面这个玩意儿没啥关系:

它的名字是这么来的:
当用户访问一个网站时,需要向服务器发送请求,网页上的每张图像都要经过一次请求才能展现给用户,然而,一个网页中往往会应用很多小的背景图像作为修饰,当网页中的图像过多时,服务器就会频繁地接受和发送请求,这将大大降低页面的加载速度。为了有效地减少服务器接受和发送请求的次数,提高页面的加载速度,出现了CSS精灵技术(也称 CSS Sprites、CSS雪碧)。
由于精灵图最早诞生之初,不像位图一样是整张转换数据后加载出来的,而是“悬浮”于帧缓冲中数据之上,不影响其中数据,就像幽灵或精灵一样,因此得名精灵图。
精灵图要解决的是下面的这个问题:

图中左侧是一个浏览器,右侧是一个服务器,假设我们正在使用浏览器,向某网站发起了请求,这个请求可能是请求访问该网站的官网,此时从网络角度看,我们发起的是HTTP请求,HTTP代表了网络协议,于是服务器收到请求后,会返回给我们需要的网页,此时重点来了:
服务器收到请求后,从它的内部搜索对应的HTML文档,在这个例子中,它搜索的是网站的官网HTML页面,与此同时,如果该页面本身有图像,那么这些所有的图像会以一个一个的url的形式返回,而后在进一步加载中,每一个url可能再发起一次HTTP请求,如果此时使用的是非持续的HTTP连接,那么TCP带来的RTT时延是很可观的,因此为了减少时延,精灵图诞生了:
精灵图把网页中所需的所有的小图片,都集成在一张图上,通过修改图片的定位,达到一张图顶n张图的效果,加载时只需要加载一张图片即可!
最后的最后,强调一下,精灵图不是一项新的功能,而是一个新技术或新思想,它的实现是由旧的功能解决的。
那么精灵图是怎么实现的呢?这里举一个小例子:
我先给一张图片:

好了,那么接下来我提出需求:
仅用上面的一张图,把你的名字的拼音全拼显示在页面上
那么第一时间,如果有前端CSS基础,你想到的方法是什么呢?
答案是:背景图片 + 背景图片定位!
详细的步骤可以分为下面的两步:
1️⃣ 首先,我们把图片放入一个指定大小的“盒子”中做背景,这个盒子的大小设置的和图片上的一个单元一样大,以本例来说,盒子的尺寸就是一个图片上一个字母的大小!
2️⃣ 而后通过背景图片定位,我们把该单元刚好定位到这个盒子中,此时就只有该单元被显示了出来,其他单元将由于盒子的大小有限而不会被显示!

上图是我对实现步骤的一个图解,其中,最里面蓝色的和最外面黄色的区域,其实是一张图片,蓝色区域是黄色的整图的一个单元,而红色是我们定义的盒子,可以看到盒子的大小应该与小单元一致(这里盒子稍微大一点,是由于方便大家观看,实际中二者应该是重合关系)
好了,那么现在再介绍一下在网页中,坐标轴与实际中的区别:

这区别使我们在做精灵图的定位时,要注意取值可能要加一个负号!
最后简单放一下上面显示你的名字的部分源码:
.l{
background-img : url(pic.jpg);
background-position : -1px -274px;
}
.o{
background-img : url(pic.jpg);
background-position : -1px -274px;
}
.b{
background-img : url(pic.jpg);
background-position : -1px -274px;
}
.s{
background-img : url(pic.jpg);
background-position : -1px -274px;
}
.t{
background-img : url(pic.jpg);
background-position : -1px -274px;
}
.e{
background-img : url(pic.jpg);
background-position : -1px -274px;
}
.r{
background-img : url(pic.jpg);
background-position : -1px -274px;
}
大家注意,代码中url需要换上精灵图的url,定位按照我上面的介绍即可。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章我们来了解一个CSS中的一个属性——zoom属性,可能一些新手不清楚zoom属性是做什么用的,其实zoom属性能够用来清除浮动,来触发haslayou等等,本文就给大家来介绍一下zoom属性及其基本用法,感兴趣的朋友接下来就跟随小编来了解看看吧!
这篇文章主要介绍了css实现多边形和梯形盒阴影技巧的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
这篇文章主要介绍了关于canvas绘制模糊问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
我们可以根据实际的需要选择合适的CSS代码样式添加到自己的网页模板的代码中实现网页灰色、黑白样式。
在css中,可以利用“letter-spacing”属性设置表格的字间距,该属性的作用就是增加或减少字符间的间距,只需要给表格元素添加“letter-spacing:间距值;”样式即可。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008