这一篇,我们主要讲解变换(transform)和过渡(transition)的使用。
2D transform 相关的属性有两个: 
- transform
 
- transform-origin
 
具体讲解这两个属性之前,我们先看一下需要注意的地方: 
- 这两个元素可以作用在 transformable 元素上(常见的 block 元素和 inline-block 都是 transformable 元素)
 
- 当进行 transform 时,border,padding 和 margin 都会变形
 
可取值: 
- rotate(旋转): 正数为顺时针,负数为逆时针
 
transform: rotate(45deg);
 
  | 
 
- translate,translateX,translateY(平移)
 
transform: translate(12px);
 
  | 
 
transform: translate(12px, 50%);
 
  | 
 
transform: translateX(12px);
 
  | 
 
transform: skew(50deg, 10deg);
 
  | 
 
注意: transform 属性值可以组合使用,在同一个 transform 属性中用空格分隔即可。操作顺序为从右到左。
transform: translate(20px) rotate(45deg) scale(2);
 
  | 
 
transform-origin 属性指定 transform 操作的基点(与 iOS 中的锚点概念类似)。默认是元素的中心点。
可取值与 background-position 类似: 
transform-origin: left top;
 
  | 
 
transform-origin: 100% 100%;
 
  | 
 
transform-origin: 20px 20px;
 
  | 
 
transition
我们可以使用 transition 属性,为一些属性变化添加过渡效果。
transition-property
transition-property 属性定义了哪个属性将被添加过渡效果(只有 animated property 可以被添加到该属性中)。
可取值: 
transition-property: none;
 
  | 
 
- all(background,color,transform 属性都将被添加过渡属性)
 
transition-property: all;
 
  | 
 
transition-property: width;
 
  | 
 
多个可动画属性可以用逗号分隔。
transition-duration
该属性定义过渡的持续时间。多个可动画属性持续时间可以用逗号分隔。
transition-duration: 1.2s; # 或者 transition-duration: 2400ms;
 
  | 
 
transition-delay
定义过渡的等待时间。
transition-delay: 1.2s; # 或者 transition-delay: 2400ms;
 
  | 
 
transition-timing-function
定义了过渡函数。
可取值: 
- ease
 
- ease-in
 
- ease-out
 
- ease-in-out
 
- linear
 
- step-start
 
- step-end
 
transition-timing-function: ease-in-out;
 
  | 
 
transition
之前属性的简写。只有 transition-duration 属性是必须的。
transition: background 1s linear 500ms;
 
  | 
 
transition: background 4s, transform 1s;
 
  |