transform
transform: [转换函数];
转换函数:translate、scale、rotate、skew。
transform 只影响当前元素,不影响文档流。
1 | transform: translateX(1px); |
特性
参考:https://www.bilibili.com/video/BV1L3411C76T
- 变换后盒子模型占据的尺寸和位置不会变换;
- 变换后会创建层叠上下文;
- 对内联元素无效;
- 不同顺序效果不同;
- 锯齿或虚化问题;
transition
改变目标元素的样式:颜色、外观、尺寸,一般搭配伪类
。
transition 尺寸变更会对文档流产生影响。
1 | .box { |
或者用 JavaScript 改变元素属性触发 transition
1 | .box { |
1 | document.querySelector('.box').classList.add('box1'); |
局限性
- transition 需要触发,没法在网页加载时自动发生。
- transition 是一次性的,不能重复发生,除非一再触发。
- transition 只能定义开始状态和结束状态,不能定义中间状态。
- 一条 transition 规则,只能定义一个属性的变化,不能涉及多个属性。
animation
transition 不够用的时候,可以使用 animation。
animation 搭配 @keyframes
使用,无需搭配伪类,页面加载 animation 就自动开始了。
1 | .animation1 { |