css3中进行2D和3D转化的方法
小编给大家分享一下css3中进行2D和3D转化的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
通过 转换,我们可以对元素进行移动、缩放、转动、拉长或拉伸,需要注意浏览器的兼容问题,在写程序的时候注意要写清楚
Chrome 和 Safari 需要前缀 -webkit-,Internet Explorer 9 需要前缀 -ms-
Internet Explorer 10 和 Firefox 支持 3D 转换但是Opera 仍然不支持 3D 转换
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中进行2D和3D转化的方法的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!