上一次写了transition的内容,这次就写拼写很类似的另外一个属性transform好了……我英语差这件事就不要吐槽了,下面是正文,真的:

transition是过渡,transform是变换。

transform分为2D变换和3D变换,简直碉堡了,其实3D变换就是比2D变换多了1D,可以简单这么理解,具体是不是等下次说3D的时候再说,这次只说2D。

在2D转换里我们可以实现斜切(skew),缩放(scale),旋转(rotate)以及位移(translate)元素的效果(还有一个矩阵-matrix,放括号里的原因是因为几乎不用它…反正我几乎不用,因为太难…不过我还是准备为它单写一篇文章,嗯,就这么定了!)。

注意: Internet Explorer 10, Firefox, 和 Opera支持transform 属性。Chrome 和 Safari 要求前缀 -webkit- 版本。 Internet Explorer 9 要求前缀 -ms- 版本。

从简单的translate位移开始说,这个效果需要两个参数(x轴位移量与y轴位移量)比如下面这个例子

这个是用来做对比的
这个是translate

css里是这么写的:

 .box{
width:200px;
height: 150px;
background-color:#bec3c7;
margin: 20px 0;
}
.box div{
width: 100px;
height: 50px;
}
.contrast{
background-color: #3598db;
}
.translate{
background-color:#f1c40f;
transform: translate(50px, 30px);
-ms-transform: translate(50px, 30px); /* IE 9 */
-webkit-transform: translate(50px, 30px); /* Safari and Chrome */
}

html里是这么写的:

 <div class="box">
<div class="contrast">这个是用来做对比的</div>
</div>
<div class="box">
<div class="contrast translate">这个是translate</div>
</div>

然后来说说这个rotate旋转,这个效果只需要一个参数,就是旋转多少度,来继续吃栗子:

这个是用来做对比的
这个是rotate

css里是这么写的:

 .box{
width:200px;
height: 150px;
background-color:#bec3c7;
margin: 20px 0;
}
.box div{
width: 100px;
height: 50px;
}
.contrast{
background-color: #3598db;
}
.rotate{
background-color:#e67f22;
transform:rotate(45deg);
-ms-transform:rotate(45deg); /* IE 9 */
-webkit-transform:rotate(45deg); /* Safari and Chrome */
}

html里是这么写的:

 <div class="box">
<div class="contrast">这个是用来做对比的</div>
</div>
<div class="box">
<div class="contrast translate">这个是translate</div>
</div>
<div class="box">
<div class="contrast rotate">这个是rotate</div>
</div>

再然后是scale缩放,这个效果又要两个参数了,分别是横向缩放比例和纵向缩放比例,栗子在这:

这个是用来做对比的
这个是scale

css里是这么写的:

 .box{
width:200px;
height: 150px;
background-color:#bec3c7;
margin: 20px 0;
}
.box div{
width: 100px;
height: 50px;
}
.contrast{
background-color: #3598db;
}
.scale{
background-color:#e84c3d;
transform: scale(0.5,2);
-ms-transform: scale(0.5,2); /* IE 9 */
-webkit-transform: scale(0.5,2); /* Safari and Chrome */
}

html里是这么写的:

 <div class="box">
<div class="contrast">这个是用来做对比的</div>
</div>
<div class="box">
<div class="contrast translate">这个是translate</div>
</div>
<div class="box">
<div class="contrast rotate">这个是rotate</div>
</div>
<div class="box">
<div class="contrast scale">这个是scale</div>
</div>

这次的最后说一下这个skew斜切,也有叫斜拉、拉伸,不过我还是比较习惯ps中文版的叫法“斜切”,先不放栗子,先说这个效果的意思。

这个效果需要两个参数,分别对应横向斜切角度和纵向斜切角度,我这里先给元素一个参数,另外一个先不动,看下效果:

css里是这样的:

 .box{
width:200px;
height: 150px;
background-color:#bec3c7;
margin: 20px 0;
}
.box div{
width: 100px;
height: 50px;
}
.contrast{
background-color: #3598db;
}
.skew-x{
background-color:#9a59b5;
transform:skew(30deg,0);
-ms-transform:skew(30deg,0); /* IE 9 */
-webkit-transform:skew(30deg,20deg); /* Safari and Chrome */
}

html里是这样的:

 <div class="box">
<div class="contrast">这个是用来做对比的</div>
</div>
<div class="box">
<div class="contrast skew-x">这个是skew</div>
</div>

出来效果是这样的:

这个是用来做对比的
这个是skew

变成了一个平行四边形(其实长方形也是平行四边形啊~),参数中给的是30度,出来的效果是竖着的两条边与横着的边的垂线(y轴)产生了一个夹角,度数是30度,给的参数值也是30度,产生的变化说成普通话就是y轴逆时针旋转了30度(参考系的y轴依然是不会变的,这个时候给"translate:0 10px;"依然是向下的,而不是向右下);

如果这个时候把第二个参数也写上,就变成这样了:

这个是用来做对比的
这个是skew

css里是这样的:

 .box{
width:200px;
height: 150px;
background-color:#bec3c7;
margin: 20px 0;
}
.box div{
width: 100px;
height: 50px;
}
.contrast{
background-color: #3598db;
}
.skew{
background-color:#9a59b5;
transform:skew(30deg,20deg);
-ms-transform:skew(30deg,20deg); /* IE 9 */
-webkit-transform:skew(30deg,20deg); /* Safari and Chrome */
}

html里是这样的:

 <div class="box">
<div class="contrast">这个是用来做对比的</div>
</div>
<div class="box">
<div class="contrast skew">这个是skew</div>
</div>

可以看到,这次的横着的两条边与x轴成夹角的度数是20度了,不过这次的旋转方向是顺时针的了…

通过上面的栗子可以看出,transform的效果是会让内部一起出现对应的变化,而不仅仅只是改变边框,并且子元素及时大到超过父元素的范围,依然不会影响到layout。

今天就到这,我去准备matrix矩阵的内容了…

transform的2D部分,嗯…就这个标题了。的更多相关文章

  1. 关于transform的2D

    在transform的学习中,自己总结了一点经验. 我们知道transform有2D和3D的两大类变换,这里分享下关于2D的属性简单示例: 一.2D变换:  (x为水平,y为垂直) 1.skew(斜拉 ...

  2. transform做2d和3d变形(css动画一)

    前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! 有段时间我是没理清transform.translate.transition和animation之间的关 ...

  3. CSS3 Transform变形(2D转换)

    Transform:对元素进行变形:Transition:对元素某个属性或多个属性的变化,进行控制(时间等),类似flash的补间动画.但只有两个关键贞.开始,结束.Animation:对元素某个属性 ...

  4. css3的transform ,2D变换

    transformtransform的中文翻译就是变换,改变,改观,转换的意思 在css中的主要作用就是对一个div或元素进行样式的改变. 他的属性(变换方式)有:平移,旋转,缩放,扭曲transla ...

  5. CSS3 transform 属性(2D,3D旋转)

    一.语法 div{ transform:rotate(7deg); -ms-transform:rotate(7deg); /* IE 9 */ -moz-transform:rotate(7deg) ...

  6. transform的2D和3D变换

    transform取值 none:默认值,即是无转换 matrix(,,,,,): 以一个含六值的(a,b,c,d,e,f)变换矩阵的形式指定一个2D变换,相当于直接应用一个[a,b,c,d,e,f] ...

  7. transform CSS3 2D知识点汇总

    transform转换属性的5个值: 1. translate(x值,y值)  移动效果. 2.rotate(45deg)  旋转效果. 3.scale(x轴倍数,y轴倍数)  缩放效果. 4.ske ...

  8. CSS 3学习——transform 2D转换

    首先声明一点,transform属性不为none的元素是它的定位子元素(绝对定位和固定定位)的包含块,而且对内创建一个新的层叠上下文. 注意:可以通过 transform-box 属性指定元素的那个盒 ...

  9. z-index和transform

    z-index和transform是CSS中的属性,但很少同学将二者联系到一起,感觉他们八杆子打不上.事实真的是这样吗?如果你也不能确认,这篇文章就值得你花点时间阅读.因为阅读完了,你会有所收获的. ...

随机推荐

  1. 网页http请求的整个过程

    这几天看一个讲解一个网页从我们输入地址到显示在我们面前的一个讲解,是我对http又有了一个完整的了解,现在做一下整个流程的记录,虽然不是很详细,但是整个过程是完整的.如果不对,请指正! 打开浏览器,地 ...

  2. 线程:CyclicBarrier同步工具类

    一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点.比如公司组织活动出去玩,需要在公司门口一起搭车去.每个人从家里出发去公司门口,到达的时间肯定先后不一样,所以公司的车要一直等待,等所有人 ...

  3. 《JavaScript 闯关记》之作用域和闭包

    作用域和闭包是 JavaScript 最重要的概念之一,想要进一步学习 JavaScript,就必须理解 JavaScript 作用域和闭包的工作原理. 作用域 任何程序设计语言都有作用域的概念,简单 ...

  4. 怎么改变Android手机里面文件的打开方式?包括文件管理器或者需要用到文件的APP

    工具-程序-qq-清除默认设置 设置>程序与功能>默认

  5. Android SDK代理服务器解决国内不能更新下载问题(转)

    言:Android SDK代理服务器解决国内Android SDK不能更新下载问题,经常会遇到Fitch fail URL错误,要不就是Nothing was installed.目下Google遭受 ...

  6. 基于canvas图像处理的图片展示demo

    图片展示网页往往色彩繁杂,当一个网页上有多张图片的时候用户的注意力就很不容易集中,而且会造成网站整个色调风格的不可把控. 能不能把所有的预览图变成灰度图片,等用户激活某张图片的时候再上色呢? 以前,唯 ...

  7. IOS开发之程序执行状态更改

    1 前言 上节我们介绍了程序执行的状态,从例子中我们可以发现处理这些状态更改的时候有明确的策略可以遵循,这次我们就来介绍一下. 2 详述 2.1 活动->不活动 使用applicationWil ...

  8. poj 2112 floyd+Dinic最大流+二分最小值

    题目大意是: K台挤奶机器,C头牛,K不超过30,C不超过200,每台挤奶机器最多可以为M台牛工作,给出这些牛和机器之间,牛和牛之间,机器与机器之间的距离,在保证让最多的牛都有机器挤奶的情况下,给出其 ...

  9. x^2+y^2=N的整数解?

    本文系转载:http://blog.sina.com.cn/s/blog_a661ecd50101cv41.html 我们先研究这个问题的一部分:哪些素数是两平方数之和?为什么我们先研究素数,有个很重 ...

  10. Objective-C中的property

    property可以被声明的位置 property可以在类的interface section和class extension以及protocol中被声明 property的可见性 Objective ...