css 2d转换
转换可以实现元素的位移、旋转、缩放等效果。可以理解为变形。
结合过渡和hover一起用。
移动translate/translateX/translateY
语法:
transform: translate(x,y);
transform: translateX(x);
transform: translateY(y);
<!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> .box { position: relative; width: 500px; height: 300px; margin: 100px auto; background-color: pink; } .slate { position: absolute; top: 50%; left: 50%; width: 100px; height: 100px; background-color: red; transform: translate(-50%, -50%); } </style> </head> <body> <div class="box"> <div class="slate"></div> </div> </body> </html>
旋转:
语法:transform:rotate(45deg);
重点:
- rotate里面跟度数,单位deg
- 角度为正,顺时针;负时,逆时针
- 默认旋转中心点是元素中心点
可以用这个方法完成一个小三角的制作
<!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> div { position: relative; width: 40px; height: 40px; margin: 100px auto; background-color: pink; } div::after { content: ''; position: absolute; top: 8px; right: 15px; width: 10px; height: 10px; border-right: 1px solid #000; border-bottom: 1px solid #000; transform: rotate(45deg); } </style> </head> <body> <div></div> </body> </html>

2D转换中心点
语法:
transform-origin: x y;
注意点:
- x和y可以跟方位名词或者像素值
- 默认为50% 50%,
- x和y用空格隔开
当鼠标进入方块时方块中的粉色方框元素将从右下角出现(定点是在第一个方块的左下角)重0度开始直到旋转180度只到铺满整个方框 总时间用0.4s
<!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> div { overflow: hidden; width: 200px; height: 200px; border: 1px solid pink; margin: 100px auto; } div::before { content: ''; display: block; width: 100%; height: 100%; background-color: pink; transform: rotate(180deg); transform-origin: left bottom; transition: all .4s; } div:hover:before { transform: rotate(0deg); } </style> </head> <body> <div></div> </body> </html>



浙公网安备 33010602011771号