程序员书籍笔记 程序员书籍笔记
  • HTML
  • CSS
  • JavaScript
  • 前端知识
  • Vue
  • MarkDown
  • git
  • Node.js
  • Linux
  • 51单片机
  • 四级
  • 第一学期课程
  • 操作系统
  • 计算机网络
  • 数据结构
  • 计算机组成原理
  • HTML5
  • Electron
  • 日记便签
  • 前端导航
GitHub (opens new window)
  • HTML
  • CSS
  • JavaScript
  • 前端知识
  • Vue
  • MarkDown
  • git
  • Node.js
  • Linux
  • 51单片机
  • 四级
  • 第一学期课程
  • 操作系统
  • 计算机网络
  • 数据结构
  • 计算机组成原理
  • HTML5
  • Electron
  • 日记便签
  • 前端导航
GitHub (opens new window)
  • HTML

  • CSS

    • CSS规范
    • 基础
    • 选择器
    • 元素显示
    • 元素背景属性
    • CSS三大特征
    • 盒子模型
    • CSS浮动
    • CSS四种定位
    • CSS显示
    • CSS技巧
    • CSS3基础
    • CSS2D转3D
      • 字体图标的使用
      • 平面转换
        • 位移
        • 旋转
        • 缩放
      • 渐变
      • 空间转换
        • 空间位移
        • 空间旋转
        • 空间缩放
      • 动画
        • 动画基本实现
        • 动画复合属性
        • 多组动画
    • 移动端布局
    • 移动端适配
    • 响应式布局
    • CSS的查询属性
  • JavaScript

  • GO

  • 正则表达式

  • java

  • TypeScript

  • react

  • 前端知识

  • jQuery

  • Python

  • C和C++

  • 前端和后端
  • CSS
yuadh
2021-09-05
目录

CSS2D转3D

# 字体图标的使用

SVG

常用的 iconfont 网站 阿里巴巴字体库、

# 平面转换

transition: all 0.5

  • 改变盒子在平面内的形态 ( 位移、旋转、缩放 )
  • 2D 转换

# 位移

transform: translate(-100%,50%) 对元素相对于自身的位移函数 比较灵活的位移函数

利用这个函数可以生成位移效果

.son {
    width: 200px;
    height: 200px;
    background-color: red;
    transition: all 0.5s;
}
.father:hover .son {
    transform: translate(100%,50%);
}
1
2
3
4
5
6
7
8
9

background-position: right 0

背景位置定位函数

# 旋转

transform: rotate(360deg) 对元素相对于自身的旋转函数 deg角度可以是正的也可以是负的

  • 顺时针
  • 逆时针

transform-origin 属性改变旋转圆点

  • 默认圆点是盒子中心点
  • transform-origin:原点水平位置 原点垂直位置

取值

  1. 方位名词 left、top、right、bottom、center
  2. 像素单位值
  3. 百分比 相对于盒子自身的尺寸计算
/* 复合写法 防止属性覆盖 */
div {
    transition:all 1s;
}
div .son {
    tranform: translate(100px) rotate(360deg);
}
1
2
3
4
5
6
7

# 缩放

transform: scale(x轴缩放倍数,y轴缩放倍数) 对元素相对于自身中心的缩放函数

div {
    transition: all 1s;
}
div .son {
    transform: scale(1.5);
}
1
2
3
4
5
6

注意

一般情况下,只为scale设置一个值,表示x轴和y轴的等比例缩放

在平面转换的操作时,需要注意 transform的覆盖问题

# 渐变

  • 渐变是多个颜色逐渐变化的视觉效果
  • 一般用于展示模块

background-image:linear-gradient { 颜色1,颜色2,颜色3... }

注意在实际应用中不会使用纯颜色渐变 采用透明到半透明会有好的视觉效果

background-image: linear-gradient (transparent,rgba(0,0,0,.5))
1

# 空间转换

# 空间位移

transform:translate3d(x,y,z)

  • translateX
  • translateY
  • translateZ

注意

需要使用透视效果才能看到 z 轴的效果

perspective: 1000px

这个属性添加在父级容器上

透视距离也称为视距 , 人眼到屏幕的距离模拟

# 空间旋转

transform: rotate(360deg)

  • rotateX
  • rotateY
  • rotateZ

rotate3d(x,y,z) : 用来设置自定义旋转轴的位置和旋转角度 取值0-1

注意

需要使用 transform-style: preserve-3d 属性才能呈现3D立体效果

区别于3D位移的 perspective 属性

<head>
    <style>
        .cube {
            width: 200px;
            height: 200px;
            margin: 100px auto;
            transition:all 1s;
            transform-style: preserve-3d
        }
        .cube div {
			position: absolute;
            width: 200px;
            height: 200px;
        }
        .front {
            background-color: orange;
            transform: translateZ(200px);
        }
        .back {
            background-color: green;
        }
        .cube:hover {
            transform: rotateY(90deg);
        }
    </style>
</head>
<body>
    <div class="cube">
        <div class="front">
            前面
        </div>
        <div class="back">
            后面
        </div>
    </div>
</body>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

See the Pen css-3d by yuandehua (@yuandehua) on CodePen.

# 空间缩放

  • transform: scaleX(n)

  • transform: scaleY(n)

  • transform: scaleZ(n)

# 动画

animation 添加动画效果

动画效果:实现多个状态间的变化过程,动画过程可控(重复播放、最终画面、是否暂停)

# 动画基本实现

定义动画

@keyframes 动画名称 {
	from {}
	to {}
}
or
@keyframes  动画名称 {
    /* 占用动画的总时长 */
	0%{}
	10%{}
	100%{}
}
1
2
3
4
5
6
7
8
9
10
11

使用动画

animation: 动画名称 动画实现时间
1

例:

.box {
    width: 200px;
    height: 200px;
    background-color: pink;
    animation: change 1s;
}
@keyframes change {
    from {
        width:200px;
    }
    to {
        width:600px;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 动画复合属性

animation: 动画名称 动画时长 速度曲线 延迟时间 重复次数 动画方向 执行完毕时状态

速度曲线

linear : 匀速曲线

steps(n) : 分段动画

重复次数

infinite:无限次

动画方向

alternate:方向动画

执行完毕时状态

backwards:动画停留在初始的状态

forwards:动画停留在最

注意

​ 复合写法必须写动画名称和时长

​ 取值不分先后顺序 ,如果有两个时间值 第一个时间表示动画时长 第二个表示延迟时间

属性 作用 取值
animation-name 动画名称
animation-duration 动画时长
animation-delay 延迟时间
animation-fill-mode 动画执行完毕状态 forwards: 最后一帧状态 backwards: 第一帧状态
animation-timing-function 速度曲线 steps(n):逐帧动画
animation-iteration-count 重复次数 infinite 无限循环
animation-direction 动画执行方向 alternate 反方向
animation-play-state 暂停动画 paused 暂停

# 多组动画

animation : {change 1s,move 1s;}
1
编辑 (opens new window)
上次更新: 2023/02/07, 14:51:48
CSS3基础
移动端布局

← CSS3基础 移动端布局→

Theme by Vdoing | Copyright © 2021-2023 yuadh
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×