【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轴同理
  • 使用精灵图的时候需要精确测量,每个小背景图片的大小和位置。

图1

2:案例

【web前端开发 | CSS】CSS高级技巧_第1张图片
从这张图片中提取出字母(YYQX)

1:先在ps或者其他测量工具中,测量出我们需要的字母的具体数值

【web前端开发 | CSS】CSS高级技巧_第2张图片
2:打开vscode(或者其他工具),开始编写代码,其他几个字母取数值方式与上面同理可得


<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>YYQXtitle>
    <style>
        /* 清楚内外边距 */
        * {
            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;
        }
    style>
head>

<body>
    <span class="box1">span>
    <span class="box2">span>
    <span class="box3">span>
    <span class="box4">span>

body>

html>
  • 运行截图
    【web前端开发 | CSS】CSS高级技巧_第3张图片

二:字体图标(iconfont)

1:基本概念(和精灵图区别)

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

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

  1. 图片文件还是比较大的。
  2. 图片本身放大和缩小会失真。
  3. 一旦图片制作完毕想要更换非常复杂。

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

展示的是图标,本质属于字体。

  • 轻量级:一个图标字体要比一系列的图像要小。一旦字体加载了,图标就会马上渲染出来,减少了服务器请求
  • 灵活性:本质其实是文字,可以很随意的改变颜色、产生阴影、透明效果、旋转等
  • 兼容性:几乎支持所有的浏览器,请放心使用
  • 字体图标不能替代精灵技术,只是对工作中图标部分技术的提升和优化。

2:字体网站

2.1 第一种 lcoMoon App

lcoMoon App

1:外网,打开较慢,属于正常情况

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

【web前端开发 | CSS】CSS高级技巧_第5张图片
3:下载完成后的具体操作

✈ 第一步

【web前端开发 | CSS】CSS高级技巧_第6张图片
✈ 第二步

【web前端开发 | CSS】CSS高级技巧_第7张图片✈ 第三步 复制这一段
【web前端开发 | CSS】CSS高级技巧_第8张图片
✈ 第四步 打开html文档,复制图标

【web前端开发 | CSS】CSS高级技巧_第9张图片【web前端开发 | CSS】CSS高级技巧_第10张图片

2.1.1:案例

在这里插入图片描述

  • 接下来看代码和运行截图

<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Documenttitle>
    <style>
        /* 刚刚从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;
        }
    style>
head>

<body>
    <div>
        div>

body>

html>
  • 运行截图

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

【web前端开发 | CSS】CSS高级技巧_第12张图片
【web前端开发 | CSS】CSS高级技巧_第13张图片
我竟然还是截了

2.2:第二种 iconfont-阿里巴巴矢量图标库

iconfont-阿里巴巴矢量图标库

1:进入网页以后,搜索你需要的图标,加入购物车
【web前端开发 | CSS】CSS高级技巧_第14张图片

2:下载素材

【web前端开发 | CSS】CSS高级技巧_第15张图片

【web前端开发 | CSS】CSS高级技巧_第16张图片
总结:

  1. 如果遇到一些结构和样式比较简单的小图标,就用字体图标。
  2. 如果遇到一些结构和样式复杂一点的小图片,就用精灵图。

三:css三角

网页中常见一些三角形,使用 CSS 直接画出来就可以,不必做成图片或者字体图标

1:案例


<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>css三角title>
    <style>
        /* 清除内外边距 */
        * {
            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;
        }
    style>
head>

<body>
    
    <div class="box">
        
        <i>i>
    div>
body>

html>
  • 运行截图
    【web前端开发 | CSS】CSS高级技巧_第17张图片

四: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;

图8

在这里插入图片描述

你可能感兴趣的:(移动与web前端开发,html,html5,css,css3)