首页>建站相关>css中的雪碧图(css sprite)

css中的雪碧图(css sprite)

电脑使用过程中肯定遇到过同样的情况,同样体积的文件夹,如果两个文件夹中文件的数量并不相同,举个极端的例子,前者内部仅一个安装包文件,后者内部含有1000个小文件。如果要分别复制这两个文件夹,后者所需要的时间是远远高于前者的。

css_sprite_pic_p1

什么是雪碧图?

在网页设计中往往会利用很多小型的图标来作为修饰,比如用一个购物车的图标代替文字说明,比如用一个音符图标去修饰多媒体菜单。视网页的复杂程度,同一页面可能会同时出现几十乃至上百个图标,如果挨个去请求服务器传输文件的话,会耗费很多客户端请求和服务器响应的时间,于是雪碧图就应运而生了。雪碧图是根据“css sprite”音译过来的,就是将很多很多的小图标放在同一张图片上,客户端只请求一次图片,然后由浏览器根据实际需要,在不同的场景显示这张图片的不同部分。

雪碧图的设计与使用

把需要使用的小图标放在一张图片上,按照一定的距离间隔开,雪碧图虽然支持多种图片格式,但考虑到网页展示的时候不同区域可能存在不同的背景,透明背景的png格式显然更具适应性。
应用雪碧图的方式非常简单:

  • 首先设置一个具备高度与宽度的容器;
  • 将容器背景图片设置为指定的雪碧图;
  • 然后为容器设置一个background-position的值——默认为(0、0),也就是图片的左上角。

雪碧图的实例

css_sprite_pic_p2

这里利用一个竖排的无序列表来显示图片,li元素设置了两个类,icon类用来控制相同的属性,比如宽度、高度、边距,“icon-x”则只用于定位元素;

<body>
    <ul class="container">
        <li class="icon icon-1"></li>
        <li class="icon icon-2"></li>
        <li class="icon icon-3"></li>
        <li class="icon icon-4"></li>
    </ul>
</body>

添加一些css样式,需要注意的是裁剪图片事实上是由li元素的宽高与定位配合完成的,ul元素里的overflow只是为了让li元素的margin生效,也可以不使用,为ul设置一个顶部的边框border-top也可以实现同样的效果;

<style>
.container {
    width: 70px;
    height: 265px;
    background-color: #faa755;
    padding: 0;
    overflow: hidden;
    }
    
.icon {
    margin: 5px 0 0 5px;    
    width: 60px;    
    height: 60px;    
    background-image: url(css_sprite_pic_p1.jpg);
    list-style-type: none;
    }
    
.icon-1 {background-position: 0 0;}
.icon-2 {background-position: 60px 0;}
.icon-3 {background-position: 120px 0;}
.icon-4 {background-position: 180px 0;}
</style>

文章中的雪碧图实例文件 提取码: 5fnh

标签: css

移动端可扫我直达哦~

推荐阅读

css 2024-10-23

在CSS中的如何进行打印设置

之前翻阅wordpress默认主题的时候,看到主题的打印设置占了很大的篇幅,嫌太麻烦所以直接跳过了。这几天想要打印一份博客上的内容,觉得页眉侧栏以及页尾都有点多余,只需要打印博文部分的内容就可以了。于是只能重新去学习关于打印的语法,发...

建站相关 css

css 2023-10-14

Css中的反选伪类“:not()”

该“:not()”伪类用来匹配不符合一组选择器的元素。由于它的作用是防止特定的元素被选中,它也被称为反选伪类(negation pseudo-class)。描述使用 :not() 时,有几种不寻常的效果和结果需要注意:可以使用此伪类编...

建站相关 css

css 2023-09-06

浮动阴影-为什么我的css浮动元素总是差那么点意思

很多站点都这样的效果,鼠标移上去时对应元素上浮,然后这样的元素往往有一排。博主常见的操作是左右平移几次,然后元素就跟琴键一样依次浮动,看起来非常解压。虽然这个效果有个小小的bug,将鼠标停留在浮动起点与终点的一小块区域,会导致重复触发...

建站相关 css

css 2023-09-04

ios下safari浏览器hover失效的问题

修改主题的时候发现ios下hover子菜单弹出后收不回去,虽然刷新一下页面或者点击一个其他的按钮也能正确关闭,但是始终感觉操作不便。于是安装了一个第三方浏览器(夸克)尝试了一下,第三方浏览器是没有什么问题的,纯属safari的锅。找了...

建站相关 css

css 2023-05-25

如何用css实现一个导航条的logo

浏览网络的时候看见某个站点的导航条菜单图标很有意思,导航条logo一般都是3条横杠,该站点的其中一条横杠是略短的,鼠标悬停时会动态伸长。尝试着自己利用css实现了类似的效果,考虑将其放入正在修改的wordpress主题当中,先记录一下...

建站相关 css

css 2023-05-21

一套纯css实现的图标库-ICONO

网络上有很多免费的图标库,比如fontawesome,比如typicons,利用一些小图标来代替呆板的文字描述,可以让页面显得更为简洁而生动。这类图标库也有一些美中不足之处,比如在不同分辨率下,可能产生边缘的锯齿,也可能会有部分几个图...

建站相关 css

css 2023-05-15

text-transform属性控制文本的大小写

看范例站点的css代码,发现这么一条,之前没有接触过这个属性,先就text-transform做个笔记。这个属性会改变元素中的字母大小写,而不论源文档中文本的大小写。如果值为 capitalize,则要对某些字母大写,但是并没有明确定...

建站相关 css

css 2022-12-01

利用css整站加灰色遮罩实现全站变灰

遇到举国同悲的日子,大部分站点会将原本五颜六色的画面呈现为黑白,用黑白的色调,表达对伟人的追思,为逝去的英雄送行。用css就可以很方便的实现全站变灰的效果。外部样式目前绝大多数站点都采用了引用外部css文件的方式,对于这类站点,只需要...

建站相关 css

css 2022-11-25

利用ul+css实现一个分页效果

尝试自定义了一个wordpress的后台设置页面,仅仅是添加了表单,暂时没有写css效果,分页器的页面展现是这样的,想用ul+css实现图片下方这样的效果。为ul添加一个flex属性,可以很方便的让其中包含的li元素排列为一行,为li...

建站相关 css