前端语言CSS(下)| 青训营笔记

91 阅读2分钟

CSS

变形、过渡、动画

transform

2D相关属性:
transform: translate(移动)、rotate(旋转)、scale(放缩)、matrix(变形矩阵)等
transform-origin: right top、center等 表示变形时依据的原点

3D相关属性:
transform: translate3d、rotate3d、scale3d、matrix3d等
transform-origin: right top、50px 30px等 表示变形时依据的原点
transform-style: flat 或 preserve-3d 看子元素的3d表现
perspective: 观看点距离z=0这个平面的距离,可以在transform中使用perspective()作用于当前元素,也可以直接使用,给后代元素一个统一值
perspective-origin: 观看者的位置,如top、bottom等
backface-visibility: 元素正面只有朝向观察者的时候可见 image.png 顺便贴上演示代码:

transition

通过指定某些元素从一种起始状态,在一段时间内以某种变化节奏,过渡到终止状态。

image.png
其中timing-function一般有三种 :

  • linear 线性
  • cubic-bezier() 贝赛尔曲线
  • step 阶跃——一般用于逐帧动画、定格动画、闪烁、时钟等

animation

@keyframes关键帧 用来定义动画过程中出现的关键样式

image.png

animation相关属性 :

  • animation-name 关键帧的名字
  • animation-duration 动画时长
  • animation-timing-function 动画节奏
  • animation-delay 延时开始的时间
  • animation-iteration-count 执行次数
  • animation-direction 是否反向或交替
  • animation-fill-mode 动画执行前后的样式采用
  • animaiton-play-state 动画运行状态

如何使得动画性能更好?

  1. 尽量不用触发reflow的属性
  2. 在遇到性能问题时触发硬件加速,比如设置will-change属性、设置transform3d等
  3. 尽量使用transform和opacity来写动画

响应式设计

遵循的原则

  • 优先使用流失布局,比如百分比、flex、grid等
  • 使用响应式图片,匹配尺寸,节省带宽
  • 使用媒体查询为不同的设备类型做适配
  • 给移动端设备设置简单、统一的视口
  • 使用相对长度,em、rem、vw作为长度度量

媒体查询

image.png

移动端的viewport

image.png