移动与web前端开发|【web前端开发 | CSS】CSS高级技巧


文章目录

    • 一:精灵图(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轴同理
  • 使用精灵图的时候需要精确测量,每个小背景图片的大小和位置。
移动与web前端开发|【web前端开发 | CSS】CSS高级技巧
文章图片

2:案例
移动与web前端开发|【web前端开发 | CSS】CSS高级技巧
文章图片

从这张图片中提取出字母(YYQX)
1:先在ps或者其他测量工具中,测量出我们需要的字母的具体数值
移动与web前端开发|【web前端开发 | CSS】CSS高级技巧
文章图片

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高级技巧
    文章图片
二:字体图标(iconfont) 1:基本概念(和精灵图区别)
【移动与web前端开发|【web前端开发 | CSS】CSS高级技巧】字体图标使用场景: 主要用于显示网页中通用、常用的一些小图标。
? 精灵图是有诸多优点的,但是缺点很明显。
  1. 图片文件还是比较大的。
  2. 图片本身放大和缩小会失真。
  3. 一旦图片制作完毕想要更换非常复杂。
此时,有一种技术的出现很好的解决了以上问题,就是字体图标 iconfont。
展示的是图标,本质属于字体。
  • 轻量级:一个图标字体要比一系列的图像要小。一旦字体加载了,图标就会马上渲染出来,减少了服务器请求
  • 灵活性:本质其实是文字,可以很随意的改变颜色、产生阴影、透明效果、旋转等
  • 兼容性:几乎支持所有的浏览器,请放心使用
  • 字体图标不能替代精灵技术,只是对工作中图标部分技术的提升和优化。
2:字体网站
2.1 第一种 lcoMoon App lcoMoon App
1:外网,打开较慢,属于正常情况
移动与web前端开发|【web前端开发 | CSS】CSS高级技巧
文章图片

2:点击生成字体以后,在下个界面我们就可以下载字体了
移动与web前端开发|【web前端开发 | CSS】CSS高级技巧
文章图片

3:下载完成后的具体操作
? 第一步
移动与web前端开发|【web前端开发 | CSS】CSS高级技巧
文章图片

? 第二步
移动与web前端开发|【web前端开发 | CSS】CSS高级技巧
文章图片
? 第三步 复制这一段
移动与web前端开发|【web前端开发 | CSS】CSS高级技巧
文章图片

? 第四步 打开html文档,复制图标
移动与web前端开发|【web前端开发 | CSS】CSS高级技巧
文章图片
移动与web前端开发|【web前端开发 | CSS】CSS高级技巧
文章图片

2.1.1:案例 移动与web前端开发|【web前端开发 | CSS】CSS高级技巧
文章图片

  • 接下来看代码和运行截图
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; }
?

  • 运行截图
移动与web前端开发|【web前端开发 | CSS】CSS高级技巧
文章图片
【叽叽歪歪】如果工作中,原来的字体图标不够用了,我们需要添加新的字体图标到原来的字体文件中。 把压缩包里面的 selection.json 从新上传,然后选中自己想要新的图标,从新下载压缩包,并替换原来的文件即可(截图好麻烦啊啊啊啊啊啊啊啊啊,突然发现还有第二种方法没写,我天)
移动与web前端开发|【web前端开发 | CSS】CSS高级技巧
文章图片

移动与web前端开发|【web前端开发 | CSS】CSS高级技巧
文章图片

我竟然还是截了
2.2:第二种 iconfont-阿里巴巴矢量图标库 iconfont-阿里巴巴矢量图标库
1:进入网页以后,搜索你需要的图标,加入购物车
移动与web前端开发|【web前端开发 | CSS】CSS高级技巧
文章图片

2:下载素材
移动与web前端开发|【web前端开发 | CSS】CSS高级技巧
文章图片

移动与web前端开发|【web前端开发 | CSS】CSS高级技巧
文章图片

总结:
  1. 如果遇到一些结构和样式比较简单的小图标,就用字体图标。
  2. 如果遇到一些结构和样式复杂一点的小图片,就用精灵图。
三:css三角
网页中常见一些三角形,使用 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; }

  • 运行截图
    移动与web前端开发|【web前端开发 | CSS】CSS高级技巧
    文章图片
四:CSS 用户界面样式 1:更改用户的鼠标样式(cursor)
属性 样式
default 小白,默认
pointer 小手
move 移动
text 文本
not-allowed 禁止
2:表单轮廓(outline)
给表单添加 outline: 0; 或者 outline: none; 样式之后,就可以去掉默认的蓝色边框
input {outline: none; }

3:防止表单域拖拽(resize)
实际开发中,我们文本域右下角是不可以拖拽的
textarea{ resize: none; }

五:vertical-align 属性应用
CSS 的 vertical-align 属性使用场景: 经常用于设置图片或者表单(行内块元素)和文字垂直对齐。
用于设置一个元素的垂直对齐方式,但是它只针对于行内元素或者行内块元素有效
属性 描述
baseline 基线对齐
top 顶部对齐
middle 中间对齐
bottom 底部对齐
解决图片底部默认空白缝隙问题
bug:图片底侧会有一个空白缝隙,原因是行内块元素会和文字的基线对齐。
主要解决方法有两种:
  1. 给图片添加 vertical-align:middle | top| bottom 等。
  2. 把图片转换为块级元素 display: block;
六:溢出的文字省略号显示 1:单行文本溢出显示省略号——必须满足三个条件
/*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;

移动与web前端开发|【web前端开发 | CSS】CSS高级技巧
文章图片

移动与web前端开发|【web前端开发 | CSS】CSS高级技巧
文章图片

    推荐阅读