css3rotate角度,css3 rotate
css3 翻转和旋转的区别
css3 翻转和旋转的区别如下:
概述:css3中的transform中有旋转,放缩,倾斜,平移的功能,分别对应的属性是:rotate,scale,skew,translate
1、旋转,利用rotate来实现,代码如下:
-webkit-transform:rotate(10deg); 指定浏览器内核为webkit的翻转方式
-moz-transform:rotate(10deg);指定firefox浏览器私有属性
transform:rotate(10deg); 一般浏览器翻转的角度为10弧度
2、 翻转,利用scale来实现,代码如下:
scale本来是放缩的意思,原来括弧里面(1,1)前者表示X轴,后者表示Y轴,当数字大于1时放大,大于0并小于1时缩小,负数代表翻转
水平翻转:
-webkit-transform:scale(-1,1); 水平轴为-1,代表水平翻转
-moz-transform:scale(-1,1); 水平轴为-1,代表水平翻转
transform:scale(-1,1);水平轴为-1,代表水平翻转
垂直翻转:
-webkit-transform:scale(1,-1); 垂直轴为-1,代表垂直翻转
-moz-transform:scale(1,-1); 垂直轴为-1,代表垂直翻转
transform:scale(1,-1);垂直轴为-1,代表垂直翻转

css3系列之transform 详解rotate
rotate
rotateX
rotateY
rotateZ
rotate3d
rotate:
旋转该元素,配合着transform-origin属性,transform-origin 是设置旋转点的。(没有设置transform-origin 属性也可以,只不过是根据该元素的中心点旋转,也就是center center)
加上 transform-origin 设置旋转点。transform-origin 是根据自己而定位的,所以 0px 0px 就是左上角那个点。
rotateX:
讲这个之前呢, 先普及一个知识, 在transform里面,x y z 轴,分别是什么样子的,他跟我们平常的 x 和 y 不太一样,因为, 他是倒着的。 Z轴呢,在0 那个位置,因为他是3D的,看下面的图,转个身就知道在那里了。
接下来,看看 所谓的 Z 轴是什么
rotateX 的X呢,可以写成大写的,也可以写成小写的x, 没有影响,这个属性呢,你加上rotateX 之后,这个元素,就会以 X 轴 旋转,里面填的是角度。
这样看起来,好像不是那么直观,毕竟是2D 的图, 来给他加了3D 的效果看看,(由于设置了 transform-origin:0 0,所以并不会在元素的中间旋转,而是以 0 0 点的那条x 轴旋转)
上面两个图,第一个图是在 2d的 情况下观看的,第二个图是 3d的时候, 是不是 3d 看起来比较直观。
那么,接下来,加上Y 一起使用,rotateX(45deg) rotateY(45deg),这两个合在一起什么意思呢, 这个元素,先按照 X轴,旋转45度,然后再按照Y轴,旋转45度,那么接下来的结果会是怎么样呢?
由于我设置的 transform-origin:center center ;定的点在中心,那么两条轴,是会成这样子的。
然后,看下,结果,是不是如我们所示?
最后,加上rotateZ
rotate3D:
设置一条主轴,然后根据这条轴旋转
这个呢,可以设置4个参数, 前三个是,x y z 最后一个是 角度deg 但是,此 x y z ,可不是上面那几个,不一样的。这三个值,设置的是矢量的方向,填什么无所谓,主要是比值很重要。举个例子 1,1,0,0deg 那么就是 1:1:0 = 100:100:0 对吧,拿这个值来图解比较好。
CSS transform中的rotate的旋转中心怎么设置?
1、我们用两个相同的div编辑它,这是基本的div代码。
2、这是一个没有旋转的div。然后我们只设置灰蓝色div的旋转,以便我们确切地知道旋转中心点是什么。
3、设置灰蓝色div是使用.t类名,然后使用变换,然后旋转。注意角度是deg,这里我们设置旋转45度。
4、然后查看对比度,灰色蓝色div已旋转,旋转的中心点默认为div的中心。
5、如果我们想设置旋转的中心点,我们可以使用transform-origin属性。将旋转中心设置为左上角,这意味着左上角是旋转中心。
6、此时,旋转中心已经改变,它已经变为左上角。效果如下。
css3 rotate 可以反方向旋转吗
css3新增的一个控制元素旋转属性的函数是rotate()[不要怀疑,它的确是一个隐形的函数,他的使用很类似与js中的函数]。
同之前所讲过的translate和scale,他也分为2D和3D的旋转,差别就是Z轴的旋转。
现在我们来看实例,代码如下:
style
.demo { margin:100px auto; width:300px; height:300px; background:#ededed; border:1px dotted #ff0000; position:relative;}
.fl { width:300px; height:145px; background:#00cb99;}
.fr { width:300px; height:145px; margin-top:10px; background:#0093b4;}
.pa { position:absolute; top:75px; left:75px; width:150px; height:150px; background-color:#f2f2f2;}
/style
div class="demo"
div class="fl"/div
div class="fr"/div
div class="pa"/div
/div
demo的div里面有三个div,最终实现的效果如下图:
现在我们对其应用rotate,假设不知道里面可以传入几个值,那我们可以分别试试传入不同数量的值对比效果,给demo加上:
transform:rotate(45deg)(旋转45度,deg是degree的缩写,意为角度;当然这只是一个单位,还有别的单位,但不常用;你也可以直接采用数字而不用单位,这个数字会被自动转换为角度)
效果如下图:
我们再给demo加上:
transform:rotate(45deg,45deg);
会发现没有变化,查看代码知道原来这个属性浏览器没有识别出来,这是为什么呢?
这是因为默认的rotate()只能传入一个旋转角度值,而且默认的角度是以电脑屏幕的基准面,以自己的中心为基准点进行旋转的。说白了他是一个二维的旋转。
那,我么应该怎么rotate进行三维的旋转呢?
很简单我之前又讲到过translate的translate3d这一属性;同样rotate也有rotate3d的旋转属性。
既然是3d,那我们就很自然的知道他有rotateX()/rotateY()/rotateZ(),这三个分支的旋转属性。
现在我们给demo加上
transform:rotate3d(45deg,45deg,0deg);
在浏览器当中我们同样会发现不起效果,原因还是不识别。
其实这就是rotate3d和translate3d,不同的地方,translate3d传入的三个值分别会被解析为XYZ的位移距离,二translate则不会这么解析,官方给出的解析方法是rotate3d(X?,Y?,Z?,angle);也就是你需要对你需要旋转的轴进行判断,如果你要沿着该轴转动那就将该轴的值设置为1,否则为0;然后在后面的angle中设置旋转的角度,需要注意的是,angle只有一个角度值。
所以上面正确的写法是:
transform:rotate3d(1,1,0,45deg);
效果如下图:
分析:
上图画的坐标轴没画好,见谅哈。
横的是X轴,竖的是Y轴,斜线是Z轴(也就是你盯着电脑看视线到电脑这个轴)
rotate的转动基准是以轴来转动的,当多个轴交叠旋转才会形成围绕某个点旋转的效果。
元素默认情况下,他所在的面是Z轴与Y轴所形成的面(或平行面)。当谈围绕X轴转,若传入的为正值,则元素上面会向屏幕里面转动,下面回向屏幕外面转动,也就是向用户转动。其他的几个面也是同样的道理。
现在我们来看沿着单个轴转动的情况,这样会帮助你理解上面这段话。
现在我给demo加上
transform:rotateX(45deg);
有没有发现图象显得没有原来的高了,对比下两边的图象。
其实元素的高度并没有变,而是透视导致。
现象一张纸看他的侧面和看他的正面,所得到的宽度是不一样的。
rotateY()/rotateZ()
这里我就不做介绍了。因为它们的使用和rotateX一样,只是转的角度不同罢了。
好了rotate的初级使用就介绍到这里了。
CSS3中rotate3d四个参数是什么意思
语法:
rotate3d(x, y, z, angle);
x number?类型, 表示旋转轴X坐标方向的矢量。
y number?类型, 表示旋转轴Y坐标方向的矢量。
z number?类型, 表示旋转轴Z坐标方向的矢量。
a angle?类型,表示旋转角度。正的角度值表示顺时针旋转,负值表示逆时针旋转。
因此,第四个参数是旋转角度的意思。