CSS3-transform 转换/变换
transform
向元素应用 2D 或 3D 转换。该属性允许我们对元素进行旋转、缩放、移动或倾斜。
兼容性: Internet Explorer 10、Firefox、Opera 支持 transform 属性。
Internet Explorer 9 支持替代的 -ms-transform 属性(仅适用于 2D 转换)。
Safari 和 Chrome 支持替代的 -webkit-transform 属性(3D 和 2D 转换)。
Opera 只支持 2D 转换。
兼容性写法: -ms-transform:rotate(20deg); /* IE 9 */
-webkit-transform:rotate(20deg); /* Safari and Chrome */
-moz-transform:rotate(20deg); /* firefox */
-o-transform:rotate(20deg);/* Opera */
语法:
//2d旋转
ransform :rotate(angle) | rotataX(angle) | rotateY(angle) | rotateZ(angle)
//3d旋转
transform :rotate(X,Y,z | angle)
//矩阵
transform: matrix(a,b,c,d,e,f)
//倾斜
skew(X,Y)
//缩放
scale(X,Y)
旋转:rotate(angle)
rotate(angle),通过指定的角度对元素进行2D旋转,正值时顺时针旋转,负值时将逆时针旋转。
transform:rotate(-20deg)
- <div class="rotate">
- <div><span>我不想旋转</span></div>
- </div>
- <style>
- .rotate div{
- width: 100px;
- height: 100px;
- line-height: 100px;
- background: green;
- color: #fff;
- }
- .rotate:hover div{
- width: 100px;
- height: 100px;
- line-height: 100px;
- background: green;
- color: #fff;
- -webkit-transform: rotate(-20deg);
- -moz-transform: rotate(-20deg);
- transform:rotate(-20deg);
- margin-bottom:20px;
- cursor: pointer;
- transition: 0.5s ease-out;
- }
- .rotate span {
- display:block;
- -webkit-transform: rotate(20deg);
- -moz-transform: rotate(20deg);
- transform:rotate(20deg);
- }
- </style>
缩放:scale()
缩放scale()具有三种情况:scale(x,y)表示X、Y轴同时放缩(如果只给一个值,x、y轴同时缩放相同倍数,给2个不同得值则根据所给数值进行缩放);scaleX(x)仅向水平方向缩放(x轴);scaleY(y)仅向垂直方向缩放(y轴);但他们的缩放中心点是一样的,中心点就是元素中心的位置,缩放倍数小于1表示缩小X呗,大于1表示放大x倍。
transform:scale(0.8) /*缩小0.8倍*/
- <div class="scale">
- <div class="scale1"></div>
- </div>
- <style>
- .scale{
- width: 200px;
- height: 200px;
- border: 1px dashed #000;
- }
- .scale1{
- width: 198px;
- height: 198px;
- background: #ffc0cb;
- }
- .scale1:hover{
- transition: 0.2s;
- transform: scale(0.8);
- -webkit-transform: scale(0.8);
- -moz-transform: scale(0.8);
- opacity: 0.9;
- cursor: pointer;
- }
- </style>
transform:scale(1.5,0.8) /*沿x轴放大1.5倍,沿y轴缩小0.8倍*/
- <div class="scale">
- <div class="scale2"></div>
- </div>
- <style>
- .scale{
- width: 200px;
- height: 200px;
- border: 1px dashed #000;
- }
- .scale2{
- width: 198px;
- height: 198px;
- background: #ffc0cb;
- }
- .scale2:hover{
- transition: 0.2s;
- transform:scale(1.5,0.8);
- -webkit-transform: scale(1.5,0.8);
- -moz-transform: scale(1.5,0.8);
- opacity: 0.9;
- cursor: pointer;
- }
- </style>
transform:scaleX(1.5) /*沿x轴放大1.5倍*/
- <div class="scale">
- <div class="scale3"></div>
- </div>
- <style>
- .scale{
- width: 200px;
- height: 200px;
- border: 1px dashed #000;
- }
- .scale3{
- width: 198px;
- height: 198px;
- background: #ffc0cb;
- }
- .scale3:hover{
- transition: 0.2s;
- transform: scaleX(3);
- -webkit-transform: scaleX(3);
- opacity: 0.9;
- cursor: pointer;
- }
- </style>
位移:translate()
位移:translate()也具有三种情况:translate(x,y)水平方向和垂直方向同时移动(x轴y轴同时移动);translateX(x)仅水平方向移动(X轴移动);translateY(y)仅水平方向移动(X轴移动)
translate(20px,10px)
- <div class="scale">
- <div class="translate1">translate(20px,10px)</div>
- </div>
- <style>
- .scale{
- width: 200px;
- height: 200px;
- border: 1px dashed #000;
- }
- .translate1{
- width: 200px;
- height: 200px;
- background: lime;
- cursor: pointer;
- }
- .translate1:hover{
- transform: translate(20px,10px);
- -webkit-transform:translate(20px,10px);
- background: #ffc0cb;
- transition: 1s;
- }
- </style>
translateX(100px)
- <div class="scale">
- <div class="translate2">translateX(100px)</div>
- </div>
- <style>
- .scale{
- width: 200px;
- height: 200px;
- border: 1px dashed #000;
- }
- .scale2{
- width: 198px;
- height: 198px;
- background: #ffc0cb;
- }
- .scale2:hover{
- transition: 0.2s;
- transform:scale(1.5,0.8);
- -webkit-transform: scale(1.5,0.8);
- -moz-transform: scale(1.5,0.8);
- opacity: 0.9;
- cursor: pointer;
- }
- </style>
translateY(100px)
- <div class="scale">
- <div class="translate3">translateY(100px)</div>
- </div>
- <style>
- .scale{
- width: 200px;
- height: 200px;
- border: 1px dashed #000;
- }
- .scale3{
- width: 198px;
- height: 198px;
- background: #ffc0cb;
- }
- .scale3:hover{
- transition: 0.2s;
- transform: scaleX(3);
- -webkit-transform: scaleX(3);
- opacity: 0.9;
- cursor: pointer;
- }
- </style>
扭曲/倾斜:skew()
同样,扭曲:skew()也具有三种情况:skew(x,y)水平方向和垂直方向同时发生扭曲变形(x轴y轴扭曲变形,第二个参数为可选参数,如果不填表示Y轴为0deg);skewX(x)仅水平方向发生扭曲(X轴扭曲),skewY(y)仅水平方向发生扭曲(X轴扭曲)
transform: skew(20deg,30deg)
- <div class="skew">
- <div>
- <span>我是文字,我决定不被扭曲</span>
- </div>
- </div>
- <style>
- .skew{
- width:200px;
- height: 200px;
- border: 1px dashed #000;
- margin-left: 200px;
- margin-top: 50px;
- }
- .skew div{
- width:200px;
- height: 200px;
- background: orange;
- transform: skew(20deg,30deg);
- -webkit-transform: skew(20deg,30deg);
- -moz-transform: skew(20deg,30deg);
- -o-transform: skew(20deg,30deg);
- -ms-transform: skew(20deg,30deg);
- }
- .skew span{
- display: block;
- transform: skew(-20deg,-30deg);
- -webkit-transform: skew(-20deg,-30deg);
- -moz-transform: skew(-20deg,-30deg);
- -o-transform: skew(-20deg,-30deg);
- -ms-transform: skew(-20deg,-30deg);
- }
- </style>
transform: skew(20deg)/*等价于:transform: skewX(20deg)*/
- <div class="skew1">
- <div>
- <span>不填Y的参数,看效果</span>
- </div>
- </div>
- <style>
- .skew1{
- width:200px;
- height: 200px;
- border: 1px dashed #000;
- margin-left: 200px;
- margin-top: 50px;
- }
- .skew1 div{
- width:200px;
- height: 200px;
- background: orange;
- transform: skew(20deg);
- -webkit-transform: skew(20deg);
- -moz-transform: skew(20deg);
- -o-transform: skew(20deg);
- -ms-transform: skew(20deg);
- }
- .skew1 span{
- display: block;
- transform: skew(-20deg);
- -webkit-transform: skew(-20deg);
- -moz-transform: skew(-20deg);
- -o-transform: skew(-20deg);
- -ms-transform: skew(-20deg);
- }
- </style>
transform: skewY(30deg)
- <div class="skew2">
- <div>
- <span>Y轴扭曲</span>
- </div>
- </div>
- <style>
- .skew2{
- width:200px;
- height: 200px;
- border: 1px dashed #000;
- margin-left: 200px;
- margin-top: 50px;
- margin-bottom: 100px;
- }
- .skew2 div{
- width:200px;
- height: 200px;
- background: orange;
- transform: skewY(30deg);
- -webkit-transform: skewY(30deg);
- -moz-transform: skewY(30deg);
- -o-transform: skewY(30deg);
- -ms-transform: skewY(30deg);
- }
- .skew2 span{
- display: block;
- transform: skewY(-30deg);
- -webkit-transform: skewY(-30deg);
- -moz-transform: skewY(-30deg);
- -o-transform: skewY(-30deg);
- -ms-transform: skewY(-30deg);
- }
- </style>
矩阵:matrix(a,b,c,d,e,f)
transform:matrix(1,0,0,1,0,0)
/**********************/
/*矩阵:matrix(a,b,c,d,e,f)
*a:水平缩放 1为原始大小 应用:scale()
*b:纵向扭曲(拉伸) 0为不变 应用:skew()
*c:横向扭曲(拉伸) 0为不变
*d:垂直缩放 1为原始大小
*e:水平偏移量 0是初始位置 应用:translate()
*f:垂直偏移量 0是初始位置
*/
/**********************/
transform: matrix(0.8,0,0,0.8,10,10);
/*transform: matrix(水平缩小0.8倍,水平拉伸0,垂直拉伸0,垂直缩小0.8倍,水平偏移10px,垂直偏移10px)*/
- <div class="matrix">
- <div></div>
- </div>
- <style>
- .matrix{
- width:200px;
- height:200px;
- border: 1px dashed #000;
- }
- .matrix div{
- width: 200px;
- height: 200px;
- background: red;
- }
- .matrix div:hover{
- cursor: pointer;
- background: #ffff00;
- transform: matrix(0.8,0,0,0.8,10,10);
- -webkit-transform: matrix(0.8,0,0,0.8,10,10);
- -moz-transform:matrix(0.8,0,0,0.8,10,10);
- -o-transform: matrix(0.8,0,0,0.8,10,10);
- -ms-transform: matrix(0.8,0,0,0.8,10,10);
- transition: 0.5s;
- }
- </style>
CSS3-transform 转换/变换的更多相关文章
- CSS3 Transform变形(2D转换)
Transform:对元素进行变形:Transition:对元素某个属性或多个属性的变化,进行控制(时间等),类似flash的补间动画.但只有两个关键贞.开始,结束.Animation:对元素某个属性 ...
- CSS3 transform变换
CSS3 transform变换 1.translate(x,y) 设置盒子位移2.scale(x,y) 设置盒子缩放3.rotate(deg) 设置盒子旋转4.skew(x-angle,y-angl ...
- 【CSS3】 理解CSS3 transform中的Matrix(矩阵)
理解CSS3 transform中的Matrix(矩阵) by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu ...
- 理解CSS3 transform中的Matrix(矩阵)
一.哥,我被你吓住了 打架的时候会被块头大的吓住,学习的时候会被奇怪名字吓住(如“拉普拉斯不等式”).这与情感化设计本质一致:界面设计好会让人觉得这个软件好用! 所以,当看到上面“Matrix(矩阵) ...
- css3 2d转换3d转换以及动画的知识点汇总
css3 2d转换 2d转换的方法: 1.移动 translate(x, y) 可以改变元素的位置,x.y可为负值: 2.缩放 scale(x, y) 可以对元素进行水平和垂直方向的缩放,x.y的取值 ...
- 理解CSS3 transform中的Matrix(矩阵)——张鑫旭
by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=2427 一.哥,我被你 ...
- CSS3 Transform变形理解与应用
CSS3 Transform变形理解与应用 Transform:对元素进行变形:Transition:对元素某个属性或多个属性的变化,进行控制(时间等),类似flash的补间动画.但只有两个关键贞.开 ...
- css3 transform中的matrix矩阵
CSS3中的矩阵CSS3中的矩阵指的是一个方法,书写为matrix()和matrix3d(),前者是元素2D平面的移动变换(transform),后者则是3D变换.2D变换矩阵为3*3, 如上面矩阵示 ...
- CSS3 transform对普通元素的N多渲染影响
一.一入transform深似海 一个普普通通的元素,如果应用了CSS3 transform变换,即便这个transform属性值不会改变其任何表面的变化(如scale(1), translate(0 ...
- CSS3(transform/transition/animation) 基础 总结
1.CSS3新增的样式(常用) //颜色透明表示rgba(0,0,0,.5) //圆角(定义角半径)border-radius: 5px 10px 15px 20px; //文字/盒子阴影text-s ...
随机推荐
- IOS开发之支付功能概述
前言:本随笔将对IOS开发的支付功能进行一个概述. 内容大纲: 一.常见的支付方案简介 二.第三方支付SDK 三.苹果官方支付方案 四.Web支付方案 正文: 一.常见的支付方案简介 在微信支付中 微 ...
- 基于Ruby的watir-webdriver自动化测试方案与实施(一)
基于Ruby的watir-webdriver自动化测试方案与实施(五) 基于Ruby的watir-webdriver自动化测试方案与实施(四) 基于Ruby的watir-webdriver自动 ...
- SqlServer--聚合函数
--聚合函数默认把整个表中的数据当做"一组",然后才进行的统计. select * from NewPerson --统计出所有人的年龄的总和 select sum(age) as ...
- vs.net Web.csproj.webinfo文件
使用VS工具打开工程的时候,请直接打开BookShop.sln文件, 请修改WEB/Web.csproj.webinfo文件中的<Web URLPath = "http://local ...
- Java程序性能优化——让你的java程序更快、更稳定
1.Java性能调优概述 1.1.Web服务器,响应时间.吞吐量是两个重要的性能参数. 1.2.程序性能的几个表现: 执行速度:程序的反映是否迅速,响应时间是否足够短 内存分配:分配是否合理,是否过多 ...
- Ubuntu14-04 MySQL-5.6.21通用二进制安装
#卸载mysql /etc/init.d/mysqld stop &> /dev/null killall mysqld &> /dev/null sudo rm -rf ...
- [转]MVC过滤器
本文转自:http://www.cnblogs.com/HopeGi/p/3342083.html APS.NET MVC中(以下简称“MVC”)的每一个请求,都会分配给相应的控制器和对应的行为方法去 ...
- Linux Kernel代码艺术——系统调用宏定义
我们习惯在SI(Source Insight)中阅读Linux内核,SI会建立符号表数据库,能非常方便地跳转到变量.宏.函数等的定义处.但在处理系统调用的函数时,却会遇到一些麻烦:我们知道系统调用函数 ...
- 基于移动端Reactive Native轮播组件的应用与开发详解
总结下这段时间学习reactive native的一些东西,我们来认识一下,被炒得这么火的rn,究竟是个什么东西,以及如何去搭建自己的demo. reactive native是什么 由facebo ...
- idea如何设置类头注释和方法注释
CSDN 2016博客之星评选结果公布 [系列直播]算法与游戏实战技术 "我的2016"主题征文活动 详细:idea如何设置类头注释和方法注释 标签: idea ...