我用css精灵图拼接了自己的英文名字,不会还有人不知道精灵图技术吧?

简介: 今天学习css精灵图技术,并且通过用它拼接自己的英文名字,拿起小本本记好了哦

image.png

image.png

这里的“下载游戏”按理说应该是一张单一的图,但是我们却看到他的background里的图片一大块里有很多其他小图标,很容易想到他把这个网站用到的一些图标都放到这一张图片里呢,这就是精灵图,包括我们常学习的学习通网站,经过我以前的分析,也发现了精灵图的影子,由此可见精灵图技术在网页中十分常见。


🍑为什么需要精灵图技术?

image.png

一个网页中往往会应用很多小的背景图像作为修饰,当网页中的图像过多时,服务器就会频繁地接收和发送请求图片,造成服务器请求压力过大,这将大大降低页面的加载速度。

因此,为了有效地减少服务器接收和发送请求的次数,提高页面的加载速度,出现了 CSS 精灵技术(也称 CSS Sprites 、 CSS 雪碧)。

核心原理:将网页中的一些小背景图像整合到一张大图中,这样服务器只需要一次请求就可以了,请求一次,这张图片就会被缓存到浏览器本地,下次就不用在发送请求了。


🍑精灵图( sprites )的使用

我们把所有需要的图标都放到一张图片中,那么我们怎么把相应的小图标布局到对应的地方呢?

image.png

当给我们有大小的盒子添加背景图片后,默认是图片的左上角内容作为盒子背景,当我们需要将特定背景放到盒子里时,就需要 background - position属性来移动背景图,使得特定图标显示到特定位置。


使用精灵图核心:


精灵技术主要针对于背景图片使用。就是把多个小背景图片整合到一张大图片中。

这个大图片也称为 sprites 精灵图或者雪碧图。

移动背景图片位置,此时可以使用 background - position 。

移动的距离就是这个目标图片的 x 和 y 坐标。

注意网页中的坐标有所不同因为一般情况下都是往上往左移动,所以数值是负值。

使用精灵图的时候需要精确测量,每个小背景图片的大小和位置。

至于移动的像素的大小可以用工具量出来,电脑自带的画图也能量。


🍑用精灵图拼接自己的英文名

用到的图片:123.png

image.png

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /* 顶部装饰及其位置 */
        .top{
            width: 730px;
            height: 550px;
            margin: 10px auto;
            border: 1px dotted pink;
            border-radius: 20%;
            background: url("123.png") no-repeat -30px -50px ;
        }
        .demo{
            width: 320px;
            height: 80px;
            margin: 0 auto;
            border-bottom: 5px dashed skyblue;
        }
        .demo div{
            float: left;
            width:70px;
            height: 80px;
            background: url("123.png") no-repeat ;
        }
        /* 字母A的位置 */
        .demo .demo1{
            background-position:  -35px -692px;   
            margin-right: 40px;
        }
         /* 字母N的位置 */
        .demo .demo2{
            background-position:  -352px -826px;
        }
         /* 字母I的位置 */
        .demo .demo3{
            background-position:  -685px -692px;
        }
         /* 字母U的位置 */
        .demo .demo4{
            background-position:  -196px -953px;
        }
        span{
            position: absolute ;
            right:35%;
            bottom: 2%;
            font-size: large;
            color: orangered;
        }
    </style>
</head>
<body>
    <div class="top"></div>
    <div class="demo">
        <div class="demo1"></div>
        <div class="demo2"></div>
        <div class="demo3"></div>
        <div class="demo4"></div>
    </div>
    <span>阿牛</span>
</body>
</html>

image.png


相关文章
|
5月前
|
Web App开发 前端开发 JavaScript
技术心得记录:瀑布流的布局原理分析(纯CSS瀑布流与JS瀑布流)
技术心得记录:瀑布流的布局原理分析(纯CSS瀑布流与JS瀑布流)
54 0
|
25天前
|
前端开发 开发者 UED
CSS不同技术的探讨
【10月更文挑战第11天】 CSS不同技术的探讨
|
25天前
|
存储 前端开发 JavaScript
CSS:现代Web设计的不同技术
【10月更文挑战第11天】 CSS:现代Web设计的不同技术
|
25天前
|
前端开发 开发者 UED
CSS技术的演变与应用
【10月更文挑战第11天】CSS技术的演变与应用
|
2月前
|
前端开发
|
3月前
|
前端开发 开发者 容器
探索现代Web开发中的CSS Grid布局技术
【8月更文挑战第29天】在数字时代的浪潮中,网页设计不断进化以适应日新月异的用户需求。CSS Grid布局技术作为一项革新性的前端工具,为设计师和开发者提供了前所未有的布局能力。本文旨在通过深入浅出的方式介绍CSS Grid的核心概念、基本用法以及在实际项目中的应用,帮助读者快速掌握这一强大的网页布局工具。
52 3
|
3月前
|
存储 前端开发 安全
【海贼王航海日志:前端技术探索】CSS你了解多少?(三)
【海贼王航海日志:前端技术探索】CSS你了解多少?(三)
32 2
|
3月前
|
Web App开发 前端开发
【海贼王航海日志:前端技术探索】CSS你了解多少?(二)
【海贼王航海日志:前端技术探索】CSS你了解多少?(二)
27 2
|
3月前
|
缓存 前端开发 JavaScript
【海贼王航海日志:前端技术探索】CSS你了解多少?(一)
【海贼王航海日志:前端技术探索】CSS你了解多少?(一)
27 2
|
3月前
|
移动开发 JavaScript 前端开发
基于CSS3、原生JS、Vue3.0技术各自实现序列帧动画效果
这篇文章展示了如何使用纯CSS3、原生JavaScript以及Vue 3.0技术来实现序列帧动画效果,并通过代码示例和动画效果展示了每种方法的实现过程和最终效果。
124 0