CSS3 2D 转换
先看兼容性
transform属性向应用元素应用2d 或者 3d装换;该属性允许我们进行旋转,缩放,移动或者倾斜;
基本语法:
transform: none|transform-functions;
transform-function:这东东有n的函数可以使用,我先来了解常用的;
rotate(angle)
通过制定角度参数来对原元素指定一个2d的旋转,不过先要设置transform-origin;
它表示旋转的基点;angle设置为正数则顺时针,为负数则表示逆时针;
css:
.demo{ height:80px; width:200px; position:absolute; top:50px; background:green; -ms-transform:rotate(7deg); -moz-transform:rotate(7deg); -webkit-transform:rotate(7deg); -o-transform:rotate(7deg); }
效果:
(默认的它是以自己中心为基点开始旋转滴呀,可以通过改变transform-origin来改变他的值滴呀)
transform-origin
属性值可以是百分比、em、px等具体的值,也可以是top、right、bottom、left和center这样的关键词。
CSS变形进行的旋转、移位、缩放等操作都是以元素自己中心(变形原点)位置进行变形的。但很多时候需要在不同的位置对元素进行变形操作,
我们就可以使用transform-origin
来对元素进行原点位置改变
下图中的红点代表中旋转的基点:
还有更多关于transform-origin的基础知识,我们稍后再总结,我们先对transform有一个总体的认识。
接下来时我们的
Ttranslate(x,y)
TranslateX(x,y)水平方向和垂直方向上的移动,
TranslateX(x);仅水平方向上的移动;
TranslateY(y)仅垂直方向上的移动;
距离的我们看实例;
Css:
*{ color:white; } .or{ height:80px; width:160px; float:left; background:green; } .demo{ height:80px; width:160px; float:left; background:green; transform:translate(200px,0px); -ms-transform:translate(200px,0px); -moz-transform:translate(200px,0px); -webkit-transform:translate(200px,0px); -o-transform:translate(200px,0px); }
效果:
缩放scale(x,y)
scale(x,y)使元素水平方向和垂直方向同时缩放(也就是X轴和Y轴同时缩 放);
scaleX(x)元素仅水平方向缩放(X轴缩放)
scaleY(y)元素仅垂直方向缩放(Y轴缩放)
其中 心点就是元素的中心位置,缩放基数为1,如果其值大于1元素就放大,反之其值小于1,元素缩小
css代码:
*{ color:white; } .or{ height:80px; width:160px; float:left; background:green; } .demo{ height:80px; width:160px; float:left; background:green; transform:scale(2,2); -ms-transform:scale(2,2); -moz-transform:scale(2,2); -webkit-transform:scale(2,2); -o-transform:scale(2,2); } .demo1{ height:80px; width:160px; float:left; background:red; transform:scaleX(2); -ms-transform:scaleX(2); -moz-transform:scaleX(2); -webkit-transform:scaleX(2); -o-transform:scaleX(2); } .demo2{ height:80px; width:160px; float:left; background:black; transform:scaleY(2); -ms-transform:scaleY(2); -moz-transform:scaleY(2); -webkit-transform:scaleY(2); -o-transform:scaleY(2); }
效果:(这里你还发现,虽然div被放大了,但是它原有的占位并没有变化)
扭曲skew(xy,)
skew(x,y)使元素在水平和垂直方向同时扭曲(X轴和Y轴同时按一定的角度值 进行扭曲变形);
skewX(x)仅使元素在水平方向扭曲变形(X轴扭曲变形);
skewY(y)仅使元素在垂直方向扭曲变形(Y轴扭曲变形);
*{ color:white; } .or{ height:80px; width:160px; float:left; background:green; } .demo{ height:80px; width:160px; float:left; background:green; transform:skewX(30deg); -ms-transform:skewX(30deg); -moz-transform:skewX(30deg); -webkit-transform:skewX(30deg); -o-transform:skewX(30deg); } .demo1{ height:80px; width:160px; float:left; background:red; transform:skewY(10deg); -ms-transform:skewY(10deg); -moz-transform:skewY(10deg); -webkit-transform:skewY(10deg); -o-transform:skewY(10deg); } .demo2{ height:80px; width:160px; float:left; background:black; transform:skew(30deg,10deg); -ms-transform:skew(30deg,10deg); -moz-transform:skew(30deg,10deg); -webkit-transform:skew(30deg,10deg); -o-transform:skew(30deg,10deg); }
效果:
以往我们叠加效果都是用逗号(“,”)隔开,但在transform
中使用多个transform-function
时却需要有空格隔开。
最后我们再来看一个综合实例:
这里还有其他额一些transform,我们后期再来总结;