文章目录
-
- 一:精灵图(sprites)
-
- 1:基本概念
- 2:案例
- 二:字体图标(iconfont)
-
- 1:基本概念(和精灵图区别)
- 2:字体网站
-
- 2.1 第一种 lcoMoon App
-
- 2.1.1:案例
- 2.2:第二种 iconfont-阿里巴巴矢量图标库
- 三:css三角
-
- 1:案例
- 四:CSS 用户界面样式
-
- 1:更改用户的鼠标样式(cursor)
- 2:表单轮廓(outline)
- 3:防止表单域拖拽(resize)
- 五:vertical-align 属性应用
- 六:溢出的文字省略号显示
-
- 1:单行文本溢出显示省略号——必须满足三个条件
- 2:多行文本溢出显示省略号
一:精灵图(sprites) 1:基本概念
核心原理:将网页中的一些小背景图像整合到一张大图中 ,这样服务器只需要一次请求就可以了。
- 精灵技术主要针对于背景图片使用。就是把多个小背景图片整合到一张大图片中。
- 这个大图片也称为 sprites 精灵图 或者 雪碧图
- 移动背景图片位置, 此时可以使用 background-position 。
- 移动的距离就是这个目标图片的 x 和 y 坐标。注意网页中的坐标有所不同
- 因为一般情况下都是往上往左移动,所以数值是负值。 x轴右边走是正值,左边走是负值, y轴同理
- 使用精灵图的时候需要精确测量,每个小背景图片的大小和位置。
文章图片
2:案例
文章图片
从这张图片中提取出字母(YYQX)
1:先在ps或者其他测量工具中,测量出我们需要的字母的具体数值
文章图片
2:打开vscode(或者其他工具),开始编写代码,其他几个字母取数值方式与上面同理可得
YYQX - 锐客网
>
/* 清楚内外边距 */
* {
padding: 0;
margin: 0;
}/* Y */
/* 以下几个字母同理 */
.box1 {
float: left;
display: block;
/* 字母的大小 */
width: 115px;
height: 121px;
/* 导入图片,不平铺,字母在整张图的位置 */
background: url(images/字母表.jpg) no-repeat -364px -545px;
}/* Y */
.box2 {
float: left;
display: block;
width: 115px;
height: 121px;
background: url(images/字母表.jpg) no-repeat -364px -545px;
}/* Q */
.box3 {
float: left;
display: block;
width: 115px;
height: 121px;
background: url(images/字母表.jpg) no-repeat -4px -413px;
}/* X */
.box4 {
float: left;
display: block;
width: 110px;
height: 108px;
background: url(images/字母表.jpg) no-repeat -251px -559px;
}
class="box1">
class="box2">
class="box3">
class="box4">
- 运行截图
文章图片
【移动与web前端开发|【web前端开发 | CSS】CSS高级技巧】字体图标使用场景: 主要用于显示网页中通用、常用的一些小图标。? 精灵图是有诸多优点的,但是缺点很明显。
- 图片文件还是比较大的。
- 图片本身放大和缩小会失真。
- 一旦图片制作完毕想要更换非常复杂。
展示的是图标,本质属于字体。
- 轻量级:一个图标字体要比一系列的图像要小。一旦字体加载了,图标就会马上渲染出来,减少了服务器请求
- 灵活性:本质其实是文字,可以很随意的改变颜色、产生阴影、透明效果、旋转等
- 兼容性:几乎支持所有的浏览器,请放心使用
- 字体图标不能替代精灵技术,只是对工作中图标部分技术的提升和优化。
2.1 第一种 lcoMoon App lcoMoon App
1:外网,打开较慢,属于正常情况
文章图片
2:点击生成字体以后,在下个界面我们就可以下载字体了
文章图片
3:下载完成后的具体操作
? 第一步
文章图片
? 第二步
文章图片
? 第三步 复制这一段
文章图片
? 第四步 打开html文档,复制图标
文章图片
文章图片
2.1.1:案例
文章图片
- 接下来看代码和运行截图
Document - 锐客网
>
/* 刚刚从style那个文件中复制的代码 */
@font-face {
/* 第一句需要复制到选择器样式 */
font-family: 'icomoon';
src: url('fonts/icomoon.eot?9wfkww');
src: url('fonts/icomoon.eot?9wfkww#iefix') format('embedded-opentype'),
url('fonts/icomoon.ttf?9wfkww') format('truetype'),
url('fonts/icomoon.woff?9wfkww') format('woff'),
url('fonts/icomoon.svg?9wfkww#icomoon') format('svg');
font-weight: normal;
font-style: normal;
font-display: block;
}/* 给引入的字体加样式 */
div {
/* 复制的上面的第一句 */
font-family: 'icomoon';
color: chartreuse;
font-size: 30px;
}
?
- 运行截图
文章图片
【叽叽歪歪】如果工作中,原来的字体图标不够用了,我们需要添加新的字体图标到原来的字体文件中。 把压缩包里面的 selection.json 从新上传,然后选中自己想要新的图标,从新下载压缩包,并替换原来的文件即可(截图好麻烦啊啊啊啊啊啊啊啊啊,突然发现还有第二种方法没写,我天)
文章图片
文章图片
我竟然还是截了
2.2:第二种 iconfont-阿里巴巴矢量图标库 iconfont-阿里巴巴矢量图标库
1:进入网页以后,搜索你需要的图标,加入购物车
文章图片
2:下载素材
文章图片
文章图片
总结:
- 如果遇到一些结构和样式比较简单的小图标,就用字体图标。
- 如果遇到一些结构和样式复杂一点的小图片,就用精灵图。
网页中常见一些三角形,使用 CSS 直接画出来就可以,不必做成图片或者字体图标1:案例
css三角 - 锐客网
>
/* 清除内外边距 */
* {
margin: 0;
padding: 0;
}.box {
position: relative;
width: 200px;
height: 100px;
background-color: blueviolet;
margin: 100px auto;
}i {
position: absolute;
margin-top: -20px;
left: 100%;
margin-left: -20px;
width: 0;
height: 0;
/* 设置边框 */
border: 10px solid transparent;
border-bottom-color: blueviolet;
}
- 运行截图
文章图片
属性 | 样式 |
---|---|
default | 小白,默认 |
pointer | 小手 |
move | 移动 |
text | 文本 |
not-allowed | 禁止 |
给表单添加 outline: 0; 或者 outline: none; 样式之后,就可以去掉默认的蓝色边框
input {outline: none;
}
3:防止表单域拖拽(resize)
实际开发中,我们文本域右下角是不可以拖拽的
textarea{ resize: none;
}
五:vertical-align 属性应用
CSS 的 vertical-align 属性使用场景: 经常用于设置图片或者表单(行内块元素)和文字垂直对齐。
用于设置一个元素的垂直对齐方式,但是它只针对于行内元素或者行内块元素有效
属性 | 描述 |
---|---|
baseline | 基线对齐 |
top | 顶部对齐 |
middle | 中间对齐 |
bottom | 底部对齐 |
bug:图片底侧会有一个空白缝隙,原因是行内块元素会和文字的基线对齐。
主要解决方法有两种:
- 给图片添加 vertical-align:middle | top| bottom 等。
- 把图片转换为块级元素 display: block;
/*1. 先强制一行内显示文本*/
white-space: nowrap;
( 默认 normal 自动换行)
/*2. 超出的部分隐藏*/
overflow: hidden;
/*3. 文字用省略号替代超出的部分*/
text-overflow: ellipsis;
2:多行文本溢出显示省略号
overflow: hidden;
text-overflow: ellipsis;
/* 弹性伸缩盒子模型显示 */
display: -webkit-box;
/* 限制在一个块元素显示的文本的行数 */
-webkit-line-clamp: 2;
/* 设置或检索伸缩盒对象的子元素的排列方式 */
-webkit-box-orient: vertical;
文章图片
文章图片
推荐阅读
- CSS|CSS笔记(六)-------CSS精灵图
- 重学前端|【重学前端】CSS 图像拼合技术
- CSS|CSS高级技巧——精灵图,字体图标,三角形等
- css|前端CSS高级技巧
- 1024程序员节|CSS精灵图/字体图标/三角/用户界面模式/vertical-align/溢出文字省略号/常见布局技巧/CSS初始化
- 前端开发|CSS精灵图的原理与使用方法介绍【前端开发】
- react|react-transition-group的使用方法
- 定位|Vue.js开发移动端经验总结
- HTML|马上跨年了,室友靠我的十款不同表白代码顺利脱单【内附源码】