0

0

什么是css sprite?对css sprite技巧总结

零下一度

零下一度

发布时间:2017-04-25 15:16:28

|

3381人浏览过

|

来源于php中文网

原创

css  sprite做为一个前端人员来说必须要掌握,但是这个对于刚学习的同学来说是由困难的,下面我就专门为这个内容做一次分享,这里没有网络图片地址,若内容显示不全面你可以到我的个人博客中去查看

什么是css sprite?对css sprite技巧总结

CSS Sprites在国内很多人叫css精灵,是一种网页图片应用处理方式。它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢慢显示出来了。对于当前网络流行的速度而言,不高于200KB的单张图片的所需载入时间基本是差不多的,所以无需顾忌这个问题。  加速的关键,不是降低重量,而是减少个数。传统切图讲究精细,图片规格越小越好,重量越小越好,其实规格大小无所谓,计算机统一都按byte计算。客户端每显示一张图片都会向服务器发送请求。所以,图片越多请求次数越多,造成延迟的可能性也就越大。

CSS Sprites其实就是把网页中一些背景图片整合到一张图片文件中,再利用CSS的“background-image”,“background- repeat”,“background-position”的组合进行背景定位,background-position可以用数字能精确的定位出背景图片的位置。

下面我就详细的讲解下他的使用技巧,包你现在不懂的童鞋会有个清楚的全新了解,虽然目前有这样的工具,但是还是要先清楚他的原理,技巧性的来做也会很快速的完成定位,下面我分享加个案例。

首先跟大家说明一点,由于需要定位的背景都是合并在一张图的,所以都是一刀切的,要么是X轴坐标一致要么是Y轴坐标一致,也就有了我下面要讲述的2种类型了。

立即学习前端免费学习笔记(深入)”;

1。横向定位坐标

横向定位坐标意思就是Y轴坐标固定,它的特点就是每个图标的高度是一致的,通过改变x坐标的位置来改变背景。只需测量每个图标的宽度就可以知道x轴的坐标了。如果你还不知道这个规律,下面我就讲解给你听吧,下面拿我做的2个案例来说事。

那么具体来讲解怎么来定位,这里是改变X坐标来定位。

由于高度都是一样所以Y轴上的坐标都是0或top

这里每个图标我是用一个span做背景的,下面具体分析下代码:

下面是Css  code:

.sharelogo{display:inline-block;*display:inline;*zoom:1;height:46px;background-image:url(../images/shareIcon.jpg);background-repeat:none;}
 
.facebookLogo{background-position:0 0;width:20px;}
 
.pinterestLogo{background-position:-20px 0;width:42px;}
 
.twitterLogo{background-position:-62px 0;width:30px;}/**/
 
.flickrLogo{background-position:-92px 0;width:130px;}
 
.youtubeLogo{background-position:-222px 0;width:98px}
 
.blogLogo{background-position:-320px 0;width:84px;}
 
.sl{float:left;padding-right:10px;}

他们的背景图片都是公用这一张背景:background-image:url(../images/shareIcon.jpg);

每个元素的背景都不允许重复:即:background-repeat:no-repeat;

读到这里你有发现一个规律,就是每个元素的坐标等于前面元素的坐标值加上宽度。即元素的横向坐标值公式等于。相邻元素的坐标值加上宽度。

pinterestLogo 的值等于facebookLogo的坐标值20px+facebookLogo的宽度20px ;是不是很简单啊,只要你知道元素的宽度就可以,因为横向坐标等必须要给个固定的宽度,所以这一步测量宽度不是浪费时间。希望仔细看源码中坐标值的规律。

不管是横向定位与纵向定位坐标的时候,他们的起始位置都是background-position:0  0;而横向定位的时候高度是固定的,所以每次只需改变X坐标的值就实现了。

比如facebook的logo是起始位置的图标,所以它的坐标值是0,0,就实现了它的定位。

AI Room Planner
AI Room Planner

AI 室内设计工具,免费为您的房间提供上百种设计方案

下载

那么pinterest的logo是它的下面一个,就是从facebook的宽度负值算起。由于facebook的宽度是21px;所以pinterest的logo坐标就是background-position:-20px 0; 下面以此类推

twitterLogo 是pinterstLogo的下面一个,那么就是用pinterstLogo的坐标值加上pinterstlogo

的宽度,就得到了twitterLogo的坐标位置了。就是-(20px+42px)=-62px;即twitterLogo 的坐标值为.twitterLogo{background-position:-62px 0;width:30px;}

读到这里你有发现一个规律,就是每个相邻元素的坐标等于前面元素的坐标值加上它前面元素的宽度。即元素的横向坐标值公司等于。相邻元素的坐标值加上它的宽度。好了下面讲第二种方案了。

2.纵向定位坐标

纵向定位坐标就是X轴坐标固定,改变Y轴坐标值来实现背景的改变,他们的宽度是固定的,所以他们的X轴坐标始终都是相同的,即0或left。下面我分享个案例

Css code:





无标题文档


                                                                                           

3.宽度和高度都相等的时候,那是最好不过了,直接做乘法,相信你的数学能力一家过了小学3年级了,Ok,还是来分享下吧。

1.宽度高度想等的情况下等位X轴坐标,这种情况通常都出现在一组按钮下,鼠标滑过和点击时候的背景改变。这种情况我也总结出来了,有公式:

X轴坐标=-n(起始位置+宽度).

其中n值从0开始。即所有的起始位置的坐标都是0,0开始起。下面依次类推。

比如你现在所要定位的元素是第3个,假设我们这里的图标的宽度为30px.那么他的X轴坐标就等于。x=-3*(0+30px);

Y轴的坐标=-n(起始位置+高度)

比如你现在所要定位的图标为第6个位置,假设这里的高度也是32px;那么他的Y轴坐标就是

Y=-6(0+32px)=-192px.   哈哈,当然有许多的工具,那个叫什么gaga的工具虽然挺好,但是我没用过,我一直都用我自己的这套,我自己在实践中感觉挺方便的,所要分享下。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

14

2026.01.30

c++ 字符串格式化
c++ 字符串格式化

本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

9

2026.01.30

java 字符串格式化
java 字符串格式化

本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。

12

2026.01.30

python 字符串格式化
python 字符串格式化

本专题整合了python字符串格式化教程、实践、方法、进阶等等相关内容,阅读专题下面的文章了解更多详细操作。

4

2026.01.30

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

20

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

18

2026.01.29

java成品学习网站推荐大全
java成品学习网站推荐大全

本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。

19

2026.01.29

Java字符串处理使用教程合集
Java字符串处理使用教程合集

本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。

3

2026.01.29

Java空对象相关教程合集
Java空对象相关教程合集

本专题整合了Java空对象相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.8万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.1万人学习

CSS教程
CSS教程

共754课时 | 25.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号