通过 转换,我们可以对元素进行移动、缩放、转动、拉长或拉伸,需要注意浏览器的兼容问题,在写程序的时候注意要写清楚
chrome 和 safari 需要前缀 -webkit-,internet explorer 9 需要前缀 -ms-
internet explorer 10 和 firefox 支持 3d 转换但是opera 仍然不支持 3d 转换
推荐课程【css3】
2d转换
translate()表示从其当前位置移动到设定的值,设定left值和top值
translate(100px,30px)//从左侧移动100px,从上往下移30px
rotate()表示元素顺时针旋转所设定的角度,当为负值时表示元素逆时针旋转
rotate(30deg)//顺时针旋转30度
scale()表示元素的尺寸会增加或减少设置宽度(x 轴)和高度(y 轴)
scale(3,4)//把宽度扩大为原来的2倍,把高度变为原来的4倍
skew()表示元素翻转所设定的角度,设定x 轴和y 轴
skew(30deg,20deg)//沿x轴把元素翻转30度,沿y轴翻转20度
matrix()
matrix() 方法就是一个总的2d方法包含数学函数,旋转,缩放,移动以及倾斜
matrix(0.866,0.5,-0.5,0.866,0,0)
例:<style> /*在chrome浏览器下运行*/div{width:200px;height: 100px;text-align: center;line-height:100px;background-color: pink;-webkit-transform:translatex(150px);/*x轴移动150px*/-webkit-transform:rotate(-50deg);/*按逆时针旋转50度*/-webkit-transform:skew(20deg,20deg);/*沿x轴,y轴旋转20度*/ }</style>
效果图
3d转换
rotatex()表示沿x轴旋转多少度,rotatey() 表示沿y轴旋转
rotatex(30deg)//沿x轴旋转30度
translate3d(x,y,z):3d 转化
translatex(x)适用用于 x 轴的值,translatey(y)适用于y值,translatez(z) 适用用于 z 轴的值
translatex(100px)//向左移动100px
scale3d(x,y,z):3d 缩放转换。
scalex(x) 给定一个 x 轴的值, scaley(y) 给定一个 y 轴的值,scalez(z) 给定一个 z 轴的值。
scalex(1.5)//沿水平方向扩大1.5倍scalex(0.5)//沿水平方向缩小0.5倍
rotate3d(x,y,z,angle) :3d 旋转。
rotatex(angle)沿 x 轴的 3d 旋转, rotatey(angle) 沿 y 轴的 3d 旋转,rotatez(angle)沿 z 轴的 3d 旋转。
rotatex(30deg)//沿x轴旋转30度
perspective(n) 定义 3d 转换元素的透视视图。
但目前浏览器不支持这个效果
例<style type="text/css"> .demo{ width: 100px; height: 100px; } .box{ position: relative; width: 100px; height: 100px; transform-style: preserve-3d; transition: 1s;} .box1{ position: absolute; width:100px; height:100px; background-color:pink; } .demo:hover .box{ transform: rotatey(180deg);}</style></head><body> <div class="demo"> <div class="box"> <div class="box1"></div> </div></div>
效果图
总结:以上就是本篇文章的内容了,希望对大家学习css3有所帮助。
以上就是css3中如何进行2d和3d的转化的详细内容。