CSS旋转与翻转使⽤⽰例详解
⼀个项⽬中要画⼀个图,有横坐标和纵坐标,纵坐标需要⽂字转过来竖排,baidu了⼀圈,找到⼀篇⽂章,有⽤,转载过来备查
css 2.0还是没有翻转的,3.0⾥⾯有rotate属性,这个可以把元素进⾏任意⾓度旋转,灰常强⼤。除了这个rotate,还有⼀个scale,⼀般⽤法格式是
-moz-transform:scale(1,1);
括弧⾥⾯(1,1)前者表⽰X轴,后者表⽰Y轴,当数字⼤于1时放⼤,⼤于0并⼩于1时缩⼩,很好理解,那么负数是怎样的效果?答案是翻转。
-moz-transform:scale(-1,1);
表⽰⽔平翻转;
-moz-transform:scale(1,-1);
表⽰垂直翻转。
不过这些都是moz或者webkit的,万恶的IE怎么办?
于是我们想到滤镜,滤镜⾥⾯有这么⼀堆东西:
顺时针旋转图⽚90度
picID.style.filter="progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
旋转180度
picID.style.filter="progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
逆时针旋转90度
picID.style.filter="progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
有没有想问“rotation=4”什么效果? ⾯壁去...90、180、270都出来了,还要rotation=4实现360⼲嘛,感觉这个很费呢。不过这个是静态费,如果动态的话,这个就是必须的了。假如⽤js控制元素旋转,从0顺时针旋到270的时候,如果没有360的话,那么270会快速的逆时针回到0,这样就2了,所以要给个360过渡,让270⾃然到360,然后再循环,这样就流畅了……
这跟css3的rotate差不多,不过只能固定⾓度的旋转,来个顺时针15度就没折了,css确实很轻松的transform:rotate(15deg);
不过这样也只是实现了“旋转”,还有“翻转”没实现。IE的翻转就需要⽤到这个:
⽔平翻转:filter:FlipH;
垂直翻转:filter:FlipV;
这样就齐全了
具体代码:
1、⽔平翻转
复制代码
代码如下:
-moz-transform:scale(-1,1);
-webkit-transform:scale(-1,1);
-o-transform:scale(-1,1);
transform:scale(-1,1);
filter:FlipH;
2、垂直翻转
复制代码
代码如下:
-moz-transform:scale(1,-1);
-webkit-transform:scale(1,-1);
-o-transform:scale(1,-1);
transform:scale(1,-1);
filter:FlipV;
3、顺时针旋转90度
复制代码
代码如下:
-moz-transform:rotate(90deg);
-webkit-transform:rotate(90deg);
-o-transform:rotate(90deg);
transform:rotate(90deg);
filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);