jjzjj

精灵图

cherry0420 2023-04-12 原文

1. 精灵图

1.1 为什么需要精灵图

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

因此,为了有效地减少服务器接受和发送请求的次数,提高页面的加载速度,出现了CSS精灵技术。

核心原理:将网页中的一些小背景图像整合到一张大图中,这样服务器只需要一次请求就可以了。

1.2 精灵图(sprites)的使用

使用精灵图核心:

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

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

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

4. 移动的距离就是这个目标图片的xy坐标。注意网页中的坐标有所不同。

5. 因为一般情况下都是往上往左移动,所以数值是负值。

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

2. 字体图标

2.1 字体图标的产生

字体图标使用场景:主要用于显示网页中通用、常用的一些小图标。

精灵图是有诸多优点的,但是缺点很明显。

1. 图片文件还是比较大的。

2. 图片本身放大和缩小会失真。

3. 一旦图片制作完毕想要更换非常复杂。

此时,有一种技术的出现很好的解决了以上问题,就是字体图标iconfont

字体图标可以提供一种方便高效的图标使用方式,展示的是图标,本质属于字体

2.2 字体图标的优点

轻量级:一个图标字体要比一系类的图像小。一旦字体加载,图标就会马上渲染出来,减少了服务器请求。

灵活性:本质其实是文字,可以很随意的改变颜色、产生阴影、透明效果、旋转等。

兼容性:几乎支持所有浏览器。

注意:字体图标不能代替精灵技术,只是对工作中图标部分技术的提升和优化。

总结:

1. 如果遇到一些结构和样式比较简单的小图标,就用字体图标。

2. 如果遇到一些结构和样式复杂一点的小图片,就用精灵图。

2.3 字体图标的下载

推荐下载网站:

icomoon字库 http://icomoon.io

阿里iconfont字库 http://www.iconfont.cn/

2.4 字体图标的引入

2.4.1 字体文件格式

不同浏览器所支持的字体格式是不一样的,字体图标之所以兼容,就是因为包含了主流浏览器支持的字体文件。

2.4.2 字体文件字体

在CSS样式中全局声明字体:简单理解把这些字体文件通过CSS引入到我们页面中。

一定注意字体文件路径的问题。 

@font-face{

font-family: 'icomoon';

src: url('fonts/icomoon.eot?7kkyc2');

src: url(fonts/icomoon.eot?7kkyc2#iefix') format('embedded-opentype'),

  url('fonts/icomoon.ttf?7kkyc2') format('truetype'),

  url('fonts/icomoon.woff?7kkyc2y') format('woff'),

  url(fonts/icomoon.svq?7kkyc2#icomoon') format('svg');

 font-weight:normal;

 font-style: normal;

 }

2.4.3 html标签内添加小图标

<span>< / span>

2.5 字体图标的追加

把压缩包里面的.json从新下载压缩包,并替换原来的文件即可。

3. CSS三角

div {

   width: 0;

   height: 0;

   line-height: 0;

   font-size: 0;

   border: 50px solid transparent;

   border-left-color: pink;

}

4. CSS用户界面样式

4.1 鼠标样式 cursor

li {cursor: pointer;}

设置或检索在对象上移动的鼠标指针采用何种系统预定义的光标形状。 

属性值

描述

default

小白默认。

pointer

小手。

move

移动。

text

文本。

not-allowed

禁止。

4.2 轮廓线 outline

给表单添加outline: 0; 或者outline: none;样式之后,就可以去掉默认的蓝色边框。

input {outline: none;}

4.3 防止拖拽文本域resize

textarea {resize: none;}

5. vertical-align属性应用

CSS的vertical-align属性使用场景:经常用于设置图片或者表单(行内块元素)和文字垂直对齐。

官方解释:用于设置一个元素的垂直对齐方式,但是它只针对于行内块元素有效。

语法: 

vertical-align: baseline | top | middle | bottom

 

描述

baseline

默认。元素放置在父元素的基线上。

top 

把元素的顶端与行中最高元素的顶端对齐。

middle

把此元素放置在父元素的中部。 

bottom

把元素的顶端与行中最低的元素的顶端对齐。 

5.1 图片、表单和文字对齐

图片、表单都属于行内块元素,默认的vertical-align是基线对齐

可以给图片、表单这些行内块元素的vertical-align属性设置为middle就可以让文字和图片垂直居中对齐。

5.2 解决图片底部默认空白缝隙问题

bug:图片底侧会有一个空白缝除,原因是行内块元素会和文字的基线对齐。
主要解决方法有两种:

1. 给图片添加vertical-align:micdle / topl bottom等。(提倡使用的)
2. 把图片转换为块级元素 display:block;

6. 溢出的文字省略号显示

6.1 单行文本溢出昱示省略号--必须满足三个条件

/*1.先强制一行内显示文本*/

white-space: nowzE

/*2.超出的部分隐藏*/

overflow: hidden;

/*3.文字用省略号替代超出的部分大*/

text-overflow: ellipsis;

6.2 多行文本溢出昱示省略号

多行文本溢出显示省略号,有较大兼容性问题,适合于webKit刘览器或移动端(移动端大部分是webkit内核)。

overflow: hidden;

text-overflow: ellipsis;

/*弹性伸缩盒子模型最示 */

display: -webkit-box;

/* 限制在一个块元素显示的文本的行数 */

-webkit-line-clamp : 2;

/*设置或检索伸缩盒对象的子元素的排列方式 */

-webkit-box-orient: vertical;

7. 常见布局技巧

7.1 argin负值运用 

1. 让每个盒子margin 往左侧移动 -1px 正好压住相邻盒子边框

2. 鼠标经过某个盒子的时候,提高当前盒子的层级即可(如果没有有定位,则加相对定位 (保留位置),如果有定位,则加z-index)。

7.2 CSS 三角强化

代码:

width: 0;

height: 0;

border-colg: transparent red transparent transparent;

border-style: solid;

border-width: 22px 8px 0 0;

8. CSS初始化

不同浏览器对有些标签的默认值是不同的,为了消除不同浏览器对HTML文本呈现的差异,照顾浏览器的兼容,我们需要对CSS初始化,简单理解:CSS初始化是指重设浏览器的样式(也称为CSS reset)。

每个网页都必须首先进行CSS初始化。

Unicode编码字体:

把中文字体的名称用相应的Unicode编码来代替,这样就可以有效避免浏览器解释CSS代码时候出现乱码的问题。

 

有关精灵图的更多相关文章

  1. VOC/YOLO/COCO数据集格式转换及LabelImg/Labelme/精灵标注助手Colabeler标注工具介绍 - 2

    数据集格式:VOC(xml)、YOLO(txt)、COCO(json)本文主要对Label格式,以及LabelImg、Labelme、精灵标注助手Colabeler这常用的三种数据标注软件进行介绍。1Label格式LabelImg是目标检测数据标注工具,可以标注标注两种格式:VOC标签格式,标注的标签存储在xml文件YOLO标签格式,标注的标签存储在txt文件中COCO标签格式,标注的标签存储在json文件中打开LabelImg后我们在要标定数据的时候,一般是已经制定好了要标注物体的类别,这样在打开LabelImg之后,我们只要框定目标之后,选择要对应的标签即可。labelimgJPEGIma

  2. 【100个 Unity实用技能】☀️ | Unity中自定义 2D Sprite 精灵图显示顺序 - 2

    Unity小科普老规矩,先介绍一下Unity的科普小知识:Unity是实时3D互动内容创作和运营平台。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助Unity将创意变成现实。Unity平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。也可以简单把Unity理解为一个游戏引擎,可以用来专业制作游戏!🎬博客主页:https://xiaoy.blog.csdn.net🎥本文由呆呆敲代码的小Y原创,首发于CSDN🙉🎄学习专栏推荐:Unity系统学习专栏🌲游戏制作专栏推荐:游戏制作🌲U

  3. 【Unity入门计划】基本概念(6)-精灵渲染器 Sprite Renderer - 2

    目录官方文档1Sprite精灵2SpriteRenderer精灵渲染器2.1Sprite精灵2.2Color着色2.3Filp翻转2.4DrawMode当前的绘制模式9-slicingSprites9切片精灵2.5MaskInteraction遮罩交互SpriteMasks精灵遮罩2.6 SpriteSortPoint精灵排序点2.7Material材质2.8Layer图层相关由于在学习Unity教程的Ruby'sAdventure教程过程中,遇到了精灵渲染器这个组件,想对它做一个简单的学习,因此一下举例的截图均基于这个官方提供的项目。官方文档精灵渲染器(SpriteRenderer)-Uni

  4. 【FPGA-Spirit_V2】小精灵V2开发板初使用 - 2

    🎉欢迎来到FPGA专栏~小精灵V2开发板初使用☆*o(≧▽≦)o*☆嗨~我是小夏与酒🍹✨博客主页:小夏与酒的博客🎈该系列文章专栏:FPGA学习之旅文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏📜欢迎大家关注!❤️🎉小精灵V2开发板初使用-实例目录一、开发板介绍🥝开发板详细介绍🥝开发板展示二、基本使用🍍LED操作🍍数码管显示🍍LCD显示🍍蜂鸣器驱动一、开发板介绍该系列文章只是作为学习记录,并无其余用途。所发文章内容是经过自己本身操作和记录整理得来。本篇文章主要记录小精灵V2(Spirit_V2)开发板初使用过程。【小月电子】大佬博客链接:Moon_3181961725【FPGA】Al

  5. 基于openharmony的储物精灵 - 2

    基于openharmony的储物精灵一.项目简介1.产品描述基于openharmony的智能柜物管理系统,可用于不同场景的环境下通过终端检索到物品的出入库信息与通过鸿蒙特性来赋能储物精灵。储物精灵NFC版:这是一个智慧储物系统,终端可以检索到物品的拿放入信息,包括名称以及放入时间与备注、位置等等。储物精灵Pro版:通过镜头对监控画面抓取后上传到云端逐帧比对,此功能在红外感应人体靠近后激活。可以在终端检索到出入库信息。注:演示链接:https://b23.tv/P37AtMH昵称:netXeyesUID账号:4252160462.技术要求掌握C,JS,Java语言掌握原子化服务原理(Faabil

  6. 天猫精灵的自定义语音技能创建流程 - 2

    登录AliGenie技能应用平台,点击创建新技能,通过向导创建一个新技能。下面是天猫精灵技能创建页面。这个页面的url:https://iap.aligenie.com/console/newskill/89247/basic?id=2022042968002&childType=skill其中skillid为89247,id为2022042968002,取的是技能创建时间。从开发流程状态迁移图能看出,一个新的语音技能,从创建后,依次要经过下列的步骤,最后才能正式发布给用户使用:定义语音交互模型构建后端服务逻辑添加屏显页面(可选步骤,可跳过)测试:可以用真机测试或者网页上测试在技能属性维护的明

  7. 【FPGA-Spirit_V2】基于FPGA的循迹小车-小精灵V2开发板 - 2

    🎉欢迎来到FPGA专栏~基于FPGA的循迹小车☆*o(≧▽≦)o*☆嗨~我是小夏与酒🍹✨博客主页:小夏与酒的博客🎈该系列文章专栏:FPGA学习之旅文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏📜欢迎大家关注!❤️🎉基于FPGA的循迹小车一、效果演示二、搭建硬件🥝开发板详细介绍🥝完整的循迹小车三、程序编写🍊整体编程思路🍊PWM模块🍊LCD模块🍊顶层模块四、调试及结果分析🍋调试注意事项🍋结果分析一、效果演示基于FPGA的循迹小车【Spirit_V2】由于场地的问题,打滑现象严重,所以用手轻推辅助小车前进。对于效果演示的分析,见调试及结果分析。二、搭建硬件该系列文章只是作为学习记录,并无

  8. Unity2D像素游戏开发——Aseprite简单人物绘画+动画制作导出精灵表示例 - 2

    目录前言什么是帧?什么是Aseprite?运行环境正文示例:绘制人物制作多帧动画微调导出精灵表总结作品欣赏附一个下载链接:前言什么是帧?我们看到的动画都是由一张张图片连续播放而成的,帧就是影像动画中最小单位的单幅影像画面,相当于电影胶片上的每一格镜头。一帧就是一幅静止的画面,连续的帧就形成动画。比如GIF文件的原理就是如此:9张图片构成的一个GIF实例 每秒钟帧数愈多,所显示的动作就会愈流畅。什么是Aseprite?Aseprite诞生于2013年,是一款专业的像素动画制作软件,提供丰富多样的像素绘图工具,用户使用该软件就可以在电脑上制作出各种像素风格的2D动画,还支持将正常的图像转换成像素风

  9. Unity2D像素游戏开发——Aseprite简单人物绘画+动画制作导出精灵表示例 - 2

    目录前言什么是帧?什么是Aseprite?运行环境正文示例:绘制人物制作多帧动画微调导出精灵表总结作品欣赏附一个下载链接:前言什么是帧?我们看到的动画都是由一张张图片连续播放而成的,帧就是影像动画中最小单位的单幅影像画面,相当于电影胶片上的每一格镜头。一帧就是一幅静止的画面,连续的帧就形成动画。比如GIF文件的原理就是如此:9张图片构成的一个GIF实例 每秒钟帧数愈多,所显示的动作就会愈流畅。什么是Aseprite?Aseprite诞生于2013年,是一款专业的像素动画制作软件,提供丰富多样的像素绘图工具,用户使用该软件就可以在电脑上制作出各种像素风格的2D动画,还支持将正常的图像转换成像素风

  10. 【CocosCreator入门】CocosCreator组件 | Sprite(精灵)组件 - 2

           CocosCreator是一款流行的游戏开发引擎,具有丰富的组件和工具,其中Sprite组件是最常用的之一。Sprite组件用于渲染2D图像,并提供了许多可配置的选项,如图像纹理、尺寸、位置、旋转等。在本文中,我们将深入探讨Sprite组件的技术实现和使用方法。目录一、组件介绍二、属性介绍 三、渲染模式 四、实现方式五、使用方法一、组件介绍        Sprite组件是CocosCreator引擎中最重要的组件之一,它控制着2D图像的显示。Sprite组件可以直接添加到场景中,也可以作为其他组件的子节点添加,例如Canvas组件或者Layout组件。        每个Spr

随机推荐