返回顶部
首页 > 资讯 > 前端开发 > html >CSS Sprite从大图中截取小图的过程
  • 369
分享到

CSS Sprite从大图中截取小图的过程

2024-04-02 19:04:59 369人浏览 安东尼
摘要

这篇文章主要讲解了“CSS Sprite从大图中截取小图的过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS Sprite从大图中截取小图的过程”吧!

这篇文章主要讲解了“CSS Sprite从大图中截取小图的过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS Sprite从大图中截取小图的过程”吧!

相信很多喜欢研究网页界面的童鞋都遇到过一个奇妙的现象:网页中很多图片素材被合成在一张图片上。

起初小菜模仿网站的时候,经常遇到这个现象,那时候也不知道这时什么技术,人家的整张图片素材不会利用,只能用ps切图,切成单个的再用。。。

其实,这是一个非常简单的技术,就是因为想象的太难了,才一直找不到问题的关键。

要想实现CSS抠图,只需要用到一个属性:background-position。

按照字面理解,这个属性就是背景定位,先看看Google网站的素材图,如下:

CSS Sprite从大图中截取小图的过程

假如小菜现在想做一个+1按钮,利用上边的素材图,普通状态显示A图,鼠标移上去显示后显示B图,实现这么一个动态效果。

CSS Sprite从大图中截取小图的过程

按钮是用来实现功能的,一般是用超链接响应单击事件,但是不能把背景图直接加在超链接上,那样就不叫样式啦,因为超链接的文本长度变化时,样式也变了。

地球人一般的做法是,div里边套一个超链接,超链接负责实现功能,div负责装载背景图。html结构如下:

代码如下:


<div class="btn">
   <a href="<a href="https://www.yisu.com">+1</a">Https://www.yisu.com">+1</a</a>>
</div>

有了html骨架,接下来就要写css样式啦。

假如我们什么都不考虑,直接把整张图片设为背景,样式如下:

代码如下:


.btn{
   background:url(bg.png);
}

效果如图:

CSS Sprite从大图中截取小图的过程

div是块级元素,默认是占一行的,这个先不用关心,但看到背景图重复了,这显然不是我们想要的,加上background-repeat:no-repeat;属性,改进样式如下:

代码如下:


.btn{
   background:url(bg.png);
   background-repeat:no-repeat;
}

这样就不重复了。

div可以理解成一个矩形框,它的左上角是顶点,背景图片的顶点也是左上角,div加载背景图时,会把两个顶点重合,顶点的坐标是(0,0)。不理解的看图,很简单的。。。

CSS Sprite从大图中截取小图的过程

+1的小图片混杂在大图中,想提取出来,需要用background-position属性,这个属性相当于大图片不动,把div的顶点进行移动,移动到目标小图的顶点位置,如下图:

CSS Sprite从大图中截取小图的过程

这样一来,div中显示的就是小图了,但是,显示的还不仅仅是小图,而是图中阴影部分,怎么办呢?设置一下div的宽、高,让它和小图的宽、高一样就可以了呗!!

再来看看background-position属性,它有两个参数,分别是水平方向移动的像素、竖直方向移动的像素,都用负数表示。大图不动,div移动,也只能是向右、向下移动,只要记住这两个方向移动的像素都用负数表示就行了!

因此,只要找到小图相对于大图左上角顶点的水平移动像素、竖直移动像素就可以了。小菜也不用什么专业工具,用截图就很方便,从大图左上角顶点开始截,到小图顶点那停下来,一看像素就差不多了,然后再调试调试,基本就搞定。

在本例中,A小图的位移是:-25px -374px,A小图尺寸是:24px 16px。因此,css样式如下:

代码如下:


.btn{
   background:url(bg.png);
   background-repeat:no-repeat;
   background-position:-25px -374px;
   height:16px;
   width:24px;
}

效果如下:

CSS Sprite从大图中截取小图的过程

这样就算是把小图抠出来啦!简单吧!!

先解释个问题,图片上有+1,而我又在超链上写了一个+1,这是因为很多时候文本内容不是写在图片上的,那样灵活性太差,文本就是文本,小菜为了给大家一个完整的演示,因此又写了一个+1,接下来就处理它!

先把+1居中,居中分为水平居中和垂直居中,水平居中超链接,需要在div上设置text-align:center;,这个属性是对子节点而言的;垂直居中div中的超链接,只需要把a标签的line-height属性设成和div的高度一样即可。样式如下:

代码如下:


.btn{
   background:url(bg.png);
   background-repeat:no-repeat;
   background-position:-25px -374px;
   height:16px;
   width:24px;
   text-align:center;
}
.btn a{
   line-height:16px;
}

效果如下:

CSS Sprite从大图中截取小图的过程

接下来呢,还有问题,我们可以发现,只有当鼠标移到+1文本上时,鼠标才会变成手型,才能响应事件。

这显然不是我们想要的,应该是鼠标移入图片时,确切的说是鼠标移入div时,就可以变成手型,也能响应事件。

这也简单,只需要在a标签(超链接)上加display:block;属性即可。

另外这个下划线比较碍眼,用text-decoration:none;属性去掉,很常见,就不多说了。

样式如下:

代码如下:


.btn{
   background:url(bg.png);
   background-repeat:no-repeat;
   background-position:-25px -374px;
   height:16px;
   width:24px;
   text-align:center;
}
.btn a{
   line-height:16px;
   display:block;
   text-decoration:none;
}

接下来就剩最后一件事了,那就是鼠标移入的时候切换背景。

本例是div里边套a标签,鼠标移入换背景,当然是指鼠标移入div,而且换背景也是换div的背景,可不是a标签的哦!!

因此要在div标签上调用hover,div的样式是btn,因此写成.btn:hover{}。

换背景还需要找到背景图片,这又需要抠小图了,也就是抠上边指出的B图。

刚刚显示的是A小图,B小图和A小图在同一水平线上,因此竖直方向的移动像素是相同的,水平方向差不就是A小图的水平像素加上A小图的宽度。

经过测试,B小图的位移是:-50px -374px,尺寸大小就不用关心了,肯定和A小图一样,不一样就没法做了。

把B小图的定位background-position:-50px -374px;放在.btn:hover{}里即可。

样式如下:

代码如下:


.btn{
   background:url(bg.png);
   background-repeat:no-repeat;
   background-position:-25px -374px;
   height:16px;
   width:24px;
   text-align:center;
}
.btn a{
   line-height:16px;
   display:block;
   text-decoration:none;
}
.btn:hover{
   background-position:-50px -374px;
}

最终效果-鼠标移入之前:

CSS Sprite从大图中截取小图的过程

最终效果-鼠标移入之后:

CSS Sprite从大图中截取小图的过程

感谢各位的阅读,以上就是“CSS Sprite从大图中截取小图的过程”的内容了,经过本文的学习后,相信大家对CSS Sprite从大图中截取小图的过程这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: CSS Sprite从大图中截取小图的过程

本文链接: https://lsjlt.com/news/76165.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • CSS Sprite从大图中截取小图的过程
    这篇文章主要讲解了“CSS Sprite从大图中截取小图的过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS Sprite从大图中截取小图的过程”吧!...
    99+
    2024-04-02
  • CSS Sprite从大图中截取小图的方法
    本文小编为大家详细介绍“CSS Sprite从大图中截取小图的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“CSS Sprite从大图中截取小图的方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深...
    99+
    2024-04-02
  • css从png里截取小图标的方法
    这篇文章将为大家详细讲解有关css从png里截取小图标的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。css从png里截取小图标的方法:首先使用background属性引入png图片,使用no-rep...
    99+
    2023-06-15
  • Unity 从Resources中动态加载Sprite图片的操作
    我就废话不多说了,大家还是直接看代码吧~ public Sprite LoadSourceSprite(string relativePath) { ...
    99+
    2024-04-02
  • Python-获取图片的大小
    了解过Pillow的都知道,Pillow是一个非常强大的图片处理器,这篇文章主要记录一下Pillow对图片信息的获取: 安装Pillow pip install pillow 本地图片 import os from PIL imp...
    99+
    2023-01-31
    大小 图片 Python
  • css中设置图片大小的方法
    这篇文章主要介绍了css中设置图片大小的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在css中,可以使用width和height属性来设置图片大小;只需要给img图片元...
    99+
    2023-06-14
  • 我从远端oracle视图中获取数据的过程
    这里涉及到三个oracle对象,一个是客户的视图,一个是客户提供的中转站服务器上的oracle,一个是我们自己的开发机的oracle,最终我们开发使用自己开发机的oracle的数据来进行开发,开发完成后,将...
    99+
    2024-04-02
  • css中如何设置图片大小
    css中设置图片大小的方法:使用width和height属性来设置图片大小,只需要给img图片元素设置“width:值;height:值;”样式即可。具体操作方法:首先创建一个html文件。在html文件中添加html代码架构。<!D...
    99+
    2024-04-02
  • css中怎么设置背景图的大小
    css中怎么设置背景图的大小,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。来看一下小栗子吧。<style>  &nb...
    99+
    2024-04-02
  • css中img图片怎么设置大小
    要在 css 中设置图片大小,可以使用以下属性:1. width:设置图片的宽度。2. height:设置图片的高度。3. max-width 和 max-height:保持图片的宽高比...
    99+
    2024-04-26
    css
  • Python获取图片的大小/尺寸
                                                                    Python获取图片的大小/尺寸分辨率   1、pil获取:     (1)、安装扩展         pip...
    99+
    2023-01-31
    尺寸 大小 图片
  • 如何从PyTorch中获取过程特征图实例详解
    目录一、获取Tensor①类型转换②张量拆解③图像展示总结一、获取Tensor 神经网络在运算过程中实际上是以Tensor为格式进行计算的,我们只需稍稍改动一下forward函数即可...
    99+
    2023-01-10
    pytorch特征提取 pytorch 特征值 pytorch 过程特征图
  • css中如何改变背景图片大小
    这篇文章主要讲解了“css中如何改变背景图片大小”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css中如何改变背景图片大小”吧! ...
    99+
    2024-04-02
  • css如何实现鼠标经过图片超链接时改变图片的大小
    小编给大家分享一下css如何实现鼠标经过图片超链接时改变图片的大小,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!鼠标经过时图片超链接改变的办法:代码如下:a:hover img{ height:&nbs...
    99+
    2023-06-08
  • css如何设置img的图片大小
    这篇文章主要讲解了“css如何设置img的图片大小”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css如何设置img的图片大小”吧! ...
    99+
    2024-04-02
  • iOS中如何获取某个视图的截图详析
    前言 最近在做SDK的截图,想触发类似系统的截屏功能,找了一圈,总结一下靠谱的几种方式。 我写了个UIView 的category,将这几种方式封装和简化了一下。 第一种情形截图...
    99+
    2022-05-29
    ios 视图 截图
  • 怎么在css中设置背景图片的大小
    怎么在css中设置背景图片的大小?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。什么是csscss是一种用来表现HTML或XML等文件样式的计算机语言,主要是用来设计网页的样...
    99+
    2023-06-14
  • SQL中字符串截取函数图文教程
    目录前言一、left()函数二、right()函数三、substr()函数1,从指定位置开始截取到字符串结束2,从指定位置截取,并指定截取位数3,从字符串末尾第一位开始截取4,从字符串倒数几...
    99+
    2023-01-13
    sql中字符串截取函数 sql语句截取字符串 sql中的字符串截取
  • DEDE仿站过程中CSS图片抓取工具的使用技巧
    在我们进行仿站的时候,使用好的工具,能够提高我们仿照的效率还能够让仿站变得非常轻松。 这个工具是在DEDE仿站的过程中起着非常重要的作用,如果你对DEDE仿站有兴趣,推荐你先看一下dede(织梦)网站前端仿站步骤教程这篇...
    99+
    2022-06-12
    DEDE仿站 CSS图片抓取 工具
  • 如何通过CSS实现响应式图像的自适应大小
    在现代的Web设计中,响应式设计已经成为了必不可少的一部分。在不同的设备和屏幕尺寸上能够自动调整和适应的网页布局和元素显得尤为重要。而在响应式设计中,图像的自适应大小同样是一个重要的考虑因素。本文将介绍如何通过CSS来实现图像的自适应大小,...
    99+
    2023-10-21
    自适应大小 CSS响应式图像
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作