transform的2D部分,嗯…就这个标题了。

上一次写了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里是这么写的:

 1 .box{
 2   width:200px;
 3   height: 150px;
 4   background-color:#bec3c7;
 5   margin: 20px 0;
 6 }
 7 .box div{
 8   width: 100px;
 9   height: 50px;
10 }
11 .contrast{
12   background-color: #3598db;
13 }
14 .translate{
15   background-color:#f1c40f;
16   transform: translate(50px, 30px);
17   -ms-transform: translate(50px, 30px); /* IE 9 */
18   -webkit-transform: translate(50px, 30px); /* Safari and Chrome */
19 }

html里是这么写的:

1 <div class="box">
2   <div class="contrast">这个是用来做对比的</div>
3 </div>
4 <div class="box">
5   <div class="contrast translate">这个是translate</div>
6 </div>

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

这个是用来做对比的

这个是rotate

css里是这么写的:

 1 .box{
 2   width:200px;
 3   height: 150px;
 4   background-color:#bec3c7;
 5   margin: 20px 0;
 6 }
 7 .box div{
 8   width: 100px;
 9   height: 50px;
10 }
11 .contrast{
12   background-color: #3598db;
13 }
14 .rotate{
15   background-color:#e67f22;
16   transform:rotate(45deg);
17   -ms-transform:rotate(45deg); /* IE 9 */
18   -webkit-transform:rotate(45deg); /* Safari and Chrome */
19 }

html里是这么写的:

1 <div class="box">
2   <div class="contrast">这个是用来做对比的</div>
3 </div>
4 <div class="box">
5   <div class="contrast translate">这个是translate</div>
6 </div>
7 <div class="box">
8   <div class="contrast rotate">这个是rotate</div>
9 </div>

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

这个是用来做对比的

这个是scale

css里是这么写的:

 1 .box{
 2   width:200px;
 3   height: 150px;
 4   background-color:#bec3c7;
 5   margin: 20px 0;
 6 }
 7 .box div{
 8   width: 100px;
 9   height: 50px;
10 }
11 .contrast{
12   background-color: #3598db;
13 }
14 .scale{
15   background-color:#e84c3d;
16   transform: scale(0.5,2);
17   -ms-transform: scale(0.5,2); /* IE 9 */
18   -webkit-transform: scale(0.5,2); /* Safari and Chrome */
19 }

html里是这么写的:

 1 <div class="box">
 2   <div class="contrast">这个是用来做对比的</div>
 3 </div>
 4 <div class="box">
 5   <div class="contrast translate">这个是translate</div>
 6 </div>
 7 <div class="box">
 8   <div class="contrast rotate">这个是rotate</div>
 9 </div>
10 <div class="box">
11   <div class="contrast scale">这个是scale</div>
12 </div>

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

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

css里是这样的:

 1 .box{
 2   width:200px;
 3   height: 150px;
 4   background-color:#bec3c7;
 5   margin: 20px 0;
 6 }
 7 .box div{
 8   width: 100px;
 9   height: 50px;
10 }
11 .contrast{
12   background-color: #3598db;
13 }
14 .skew-x{
15   background-color:#9a59b5;
16   transform:skew(30deg,0);
17   -ms-transform:skew(30deg,0); /* IE 9 */
18   -webkit-transform:skew(30deg,20deg); /* Safari and Chrome */
19 }

html里是这样的:

1 <div class="box">
2   <div class="contrast">这个是用来做对比的</div>
3 </div>
4 <div class="box">
5   <div class="contrast skew-x">这个是skew</div>
6 </div>

出来效果是这样的:

这个是用来做对比的

这个是skew

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

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

这个是用来做对比的

这个是skew

css里是这样的:

 1 .box{
 2   width:200px;
 3   height: 150px;
 4   background-color:#bec3c7;
 5   margin: 20px 0;
 6 }
 7 .box div{
 8   width: 100px;
 9   height: 50px;
10 }
11 .contrast{
12   background-color: #3598db;
13 }
14 .skew{
15   background-color:#9a59b5;
16   transform:skew(30deg,20deg);
17   -ms-transform:skew(30deg,20deg); /* IE 9 */
18   -webkit-transform:skew(30deg,20deg); /* Safari and Chrome */
19 }

html里是这样的:

1 <div class="box">
2   <div class="contrast">这个是用来做对比的</div>
3 </div>
4 <div class="box">
5   <div class="contrast skew">这个是skew</div>
6 </div>

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

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

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

时间: 2024-12-22 15:24:48

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

HTML5+CSS3 animation/keyframe/transform/transition/2D translate/3D translate 学习总结

<h1>HTML5+CSS3 animation/keyframe/transform/transition/2D translate/3D translate 学习总结</h1> <h1>HTML5,animation,keyframe,transform,transition,2D translate,3D translate,CSS3</h1> CSS3 教程 CSS 用于控制网页的样式和布局. CSS3 是最新的 CSS 标准. 本教程向您讲解 CS

关于transform的2D

在transform的学习中,自己总结了一点经验. 我们知道transform有2D和3D的两大类变换,这里分享下关于2D的属性简单示例: 一.2D变换:  (x为水平,y为垂直) 1.skew(斜拉) 它的值是以角度表示,单位deg:以原点为基准,围绕 X 轴和 Y 轴按照一定的角度倾斜: 可能会改变元素的形状: 斜拉可以写成skew(x轴的夹角,y轴的夹角),或者skewX(xdeg),skewY(ydeg). A.示例图:(注!本例中的基准点是左上角,只为方便对比查看) 2.scale(缩

transform CSS3 2D知识点汇总

transform转换属性的5个值: 1. translate(x值,y值)  移动效果. 2.rotate(45deg)  旋转效果. 3.scale(x轴倍数,y轴倍数)  缩放效果. 4.skew(x轴deg,y轴deg)  倾斜效果. 5.matrix()  矩阵 原文地址:https://www.cnblogs.com/ZM-ONE/p/8975780.html

CSS 3学习——transform 2D转换

首先声明一点,transform属性不为none的元素是它的定位子元素(绝对定位和固定定位)的包含块,而且对内创建一个新的层叠上下文. 注意:可以通过 transform-box 属性指定元素的那个盒子发生了变换,该属性的默认值是"border-box",查MDN只有Firefox支持该属性(我试的没效果). CSS 3 中2D转换的实现用到两个属性: 属性 描述 CSS transform 向元素应用 2D 或 3D 转换. 3 transform-origin 指定变换的基点的位置

CSS3 2D 转换【旋转transform:rotate(30deg); 移动transform: translate(50px,100px); 放大缩小transform:scale(2,4)】

CSS3 2D 转换 CSS3 转换 CSS3转换,我们可以移动,比例化,反过来,旋转,和拉伸元素. 它是如何工作? 变换的效果,让某个元素改变形状,大小和位置. 您可以转换您使用2D或3D元素. 浏览器支持 表格中的数字表示支持该属性的第一个浏览器版本号. 紧跟在 -webkit-, -ms- 或 -moz- 前的数字为支持该前缀属性的第一个浏览器版本号. Property           transform 36.0 4.0 -webkit- 10.0 9.0 -ms- 16.0 3.5

关于Canvas Rect Transform 设置问题?

Render Mode: Screen Space - Overlay:将UI放置在场景的上面,调节场景大小或调整分辨率,则Canvas也会随之调整. Screen Space - Camera:Canvas由一个特定的相机渲染,相机的设置会影响UI. World Space:使Canvas像场景中的其他对象一样渲染. 默认情况为Screen Space - Overlay 模式, 即不能更改 Rect Transform  更换成  World Space 即可设置Rect Transform

Kidney自得其乐版CSS教程Chapter6 Transform

Chapter 6 Transform Version Update Note 1.0 2016-6-11 首次添加.欢迎在评论中指出错误,一经核实,立即修订,且注明贡献者. transform用于2D/3D几何变换,包括平移translate.旋转rotate.缩放scale和倾斜skew.这些几何变换有三个关键点:坐标原点.坐标和轴. 本来打算按之前的体例写,但是几何变换用图形最能说明一切,特别是网上有现成的资源,基本囊括了所有几何变换,非常直观,不用费一个字解释. 参见:http://we

unity4.6学习Ugui中文文档-------参考-UGUI Rect Transform .

这一节走进更多的深度,有关unity的用户界面功能. 1.Rect Transform Rect Transform是2D与 3D 图形的Transform组件对应.它用来指定用户界面系统中的大小.位置和旋转的控件 Properties Property: Function: Pos (X, Y and Z) 相对锚点anchors的矩形枢轴pivot点的位置. Width/Height 矩形的宽高 Left, Top, Right, Bottom 矩形的边缘相对于其锚点的位置.这可以被认为是内

z-index和transform,你真的了解吗?

z-index和transform是CSS中的属性,但很少同学将二者联系到一起,感觉他们八杆子打不上.事实真的是这样吗?如果你也不能确认,这篇文章就值得你花点时间阅读.因为阅读完了,你会有所收获的. 堆叠上下文(Stacking Context) 在开始今天的主题之前,先得回忆一下CSS中的Stacking Context(堆叠上下文).因为只有了解清楚了这个概念,才能更好的了解下面的内容. 任何HTML文档默认的堆叠上下文都是<html>元素.因此,除非创建新的堆叠上下文.默认情况下,元素的