一.概述
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度
-
3.设置透明度:opacity属性
(1)属性值0-1
(2)0的时候就完全透明,看不见了
(3)1的时候无透明效果3.钟表制作练习
```css <!DOCTYPE html>
/* 表盘样式 */ .clock{ width: 400px; height: 400px; /* background-color: aqua; */ border-radius: 50%; /* border: 2px solid black; */ position:relative; margin: 50px auto; background-image: url(./img/10/表盘.webp); background-size: contain; } .clock div{ position: absolute; left: 0; top: 0; right: 0; bottom: 0; margin: auto; } /* 时针 */ .hour-wrapper{ width: 40%; height: 40%; /* background-color: red; */ animation: cl-run 7200s linear infinite; } .hour-wrapper .hour{ height: 50%; width: 6px; background-color: black; margin: 0 auto; } /* 分针 */ .min-wrapper{ width: 55%; height: 55%; /* background-color: red; */ animation: cl-run 600s steps(60) infinite; } .min-wrapper .min{ height: 50%; width: 4px; background-color: black; margin: 0 auto; } /* 秒针 */ .sec-wrapper{ width: 70%; height: 70%; border:10px black solid; border-radius: 50%; animation: cl-run 10s steps(60) infinite; } .sec-wrapper .sec{ height: 50%; width: 2px; background-color: black; margin: 0 auto; } @keyframes cl-run{ form{ transform: rotateZ(0); } to{ transform: rotateZ(360deg); } }
<a name="HJGI4"></a>#### 4.立方体旋转```css<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>html{perspective: 800px;}.cube{width:200px ;height: 200px;margin: 0 auto;margin-top: 250px;animation: run 20s infinite linear;transform-style: preserve-3d;}.cube> div{width: 200px;height: 200px;opacity: 0.7;position:absolute;}img{vertical-align: top;width: 200px;height: 200px;}.box1{transform: rotateY(90deg) translateZ(100px);}.box2{transform: rotateY(-90deg) translateZ(100px);}.box3{transform: rotateX(90deg) translateZ(100px);}.box4{transform:rotateX(-90deg) translateZ(100px)}.box5{transform: rotateY(180deg) translateZ(100px);}.box6{transform: rotateY(0deg) translateZ(100px);}@keyframes run{from{transform: rotateX(0) rotateZ(0);}to{transform: rotateX(1turn) rotateZ(1turn);}}</style></head><body><div class="cube"><div class="box1"><img src="./1.jpg" alt=""></div><div class="box2"><img src="./2.jpg" alt=""></div><div class="box3"><img src="./3.jpg" alt=""></div><div class="box4"><img src="./4.jpg" alt=""></div><div class="box5"><img src="./5.jpg" alt=""></div><div class="box6"><img src="./6.jpg" alt=""></div></div></body></html>
四.缩放(放大缩小)
1.通过transform属性设置,属性值如下:
(1)scale():水平垂直双方向缩放
(2)scaleX():水平方向缩放
(3)scaleY():垂直方向缩放
