一.概述

1.变形就是通过CSS改变元素的形状或位置

2.变形不会影响页面的布局

3.利用transform属性设置变形

4.变形的原点用transform-origin属性来设置,默认值为center

二.平移

1.transform:translateX();

(1)括号内可填入100px,-100px,1em等表示平移的像素
(2)可填入百分比,按照自身的比例,相对自身计算

2.transform:translateY();

(1)括号内可填入100px,-100px,1em等表示平移的像素
(2)可填入百分比,按照自身的比例,相对自身计算

3.transform:translateZ();

(1)括号内可填入100px,-100px,1em等表示平移的像素
(2)可填入百分比,按照自身的比例,相对自身计算
(3)z轴平移时立体效果(近大远小)默认情况情况下看不出来,需要自己给html根元素设置perspective属性
(4)html{
perspective:800px;/视距/
}
tranform: translateZ(100px);

4.可以一起设置多个平移,中间空格隔开:transform:translateX(100px) translateY(200px);

三.旋转

1.通过旋转可以使元素沿着x,y或z轴旋转指定角度

2.通过transform属性设置,属性值如下:

(1)rotateX()
(2)rotateY()
(3)rotateZ()

  • 括号内填入角度
  • 单位可以是deg,30deg就是30度
  • 单位还可以是turn,1turn就是一圈

    3.设置透明度:opacity属性

    (1)属性值0-1
    (2)0的时候就完全透明,看不见了
    (3)1的时候无透明效果

    3.钟表制作练习

    ```css <!DOCTYPE html>

  1. <a name="HJGI4"></a>
  2. #### 4.立方体旋转
  3. ```css
  4. <!DOCTYPE html>
  5. <html lang="en">
  6. <head>
  7. <meta charset="UTF-8">
  8. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  9. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  10. <title>Document</title>
  11. <style>
  12. html{
  13. perspective: 800px;
  14. }
  15. .cube{
  16. width:200px ;
  17. height: 200px;
  18. margin: 0 auto;
  19. margin-top: 250px;
  20. animation: run 20s infinite linear;
  21. transform-style: preserve-3d;
  22. }
  23. .cube> div{
  24. width: 200px;
  25. height: 200px;
  26. opacity: 0.7;
  27. position:absolute;
  28. }
  29. img{
  30. vertical-align: top;
  31. width: 200px;
  32. height: 200px;
  33. }
  34. .box1{
  35. transform: rotateY(90deg) translateZ(100px);
  36. }
  37. .box2{
  38. transform: rotateY(-90deg) translateZ(100px);
  39. }
  40. .box3{
  41. transform: rotateX(90deg) translateZ(100px);
  42. }
  43. .box4{
  44. transform:rotateX(-90deg) translateZ(100px)
  45. }
  46. .box5{
  47. transform: rotateY(180deg) translateZ(100px);
  48. }
  49. .box6{
  50. transform: rotateY(0deg) translateZ(100px);
  51. }
  52. @keyframes run{
  53. from{
  54. transform: rotateX(0) rotateZ(0);
  55. }
  56. to{
  57. transform: rotateX(1turn) rotateZ(1turn);
  58. }
  59. }
  60. </style>
  61. </head>
  62. <body>
  63. <div class="cube">
  64. <div class="box1">
  65. <img src="./1.jpg" alt="">
  66. </div>
  67. <div class="box2">
  68. <img src="./2.jpg" alt="">
  69. </div>
  70. <div class="box3">
  71. <img src="./3.jpg" alt="">
  72. </div>
  73. <div class="box4">
  74. <img src="./4.jpg" alt="">
  75. </div>
  76. <div class="box5">
  77. <img src="./5.jpg" alt="">
  78. </div>
  79. <div class="box6">
  80. <img src="./6.jpg" alt="">
  81. </div>
  82. </div>
  83. </body>
  84. </html>

四.缩放(放大缩小)

1.通过transform属性设置,属性值如下:

(1)scale():水平垂直双方向缩放
(2)scaleX():水平方向缩放
(3)scaleY():垂直方向缩放