css笔记 - transform学习笔记(二)

transform转换

CSS transform

属于2D/3D上的转换、变形效果。他不是一个动画,他就是变形。比如正方形变平行四边形,再变圆形。都是形状变成另一个形状。

但是如果配合上transition/animation,他就会从一个形状变成另一形状。只要有一段时间内的过渡效果,就形成了动画。

主要功能有:拉伸变形、倾斜、位移、缩放、旋转。

原理是:改变元素的尺寸、形状、角度、位置等

js写法:

  object.style.transform="rotate(7deg)";

transform-origin 设置元素的基点位置

该元素允许改变被转换元素的位置

默认不设置的情况下,x轴坐标是(border-width + padding + width) / 2 + 'px',第二个坐标是(border-width + padding +height) / 2 + 'px';

transform-style 被嵌套元素在3D空间如何显示

  • 规定被嵌套元素如何在3D空间中显示:

    • flat:表示子元素不保留3d位置、

    • preserve-3d表示 子元素保留3d位置

  • 属性值: flat、preserve-3d、unset、inherit、initial

  • 需要与transform一同使用。

transform的各个方法属性

name含义
none我不定义好不好
translate()位移
rotate()旋转
scale()缩放
skew()拉伸变形
matrix()混合, 集百家之大乘。

方法可能的配置

skew:翻转给定的角度,xdeg水平翻转度数,ydeg垂直翻转度数。能为负

Dname含义中心点备注
2skew(xdeg,ydeg)拉伸变形默认中心点就是盒模型的中心点
2skewX(xdeg)水平方向拉伸变形同上
2skewY(ydeg)垂直方向拉伸变形同上
2skew(n-deg)延伸,只写一个也起作用,不过是只默认作用于x轴水平拉伸。同上

* 可以为负值,负值时翻转拉伸的方向,比如之前是左上角-右下角拉伸,翻转后变成右上角-左下角的拉伸。

scale:x对应宽度,y对应高度,缩放到原来宽高的倍数。

Dname含义中心点备注
2scale(x,y)缩放默认中心点就是盒模型的中心点
2scale(n-deg)缩放默认中心点就是盒模型的中心点和上边的区别就是默认只缩放水平方向,就像scaleX(x)
3Dscale3d(x,y,z)缩放同上我设置三个点和设置正常的两个点没什么区别
2scaleX(x)横向缩放同上正值时横向拉伸,同skew的区别是:水平拉伸不带斜线角度
2scaleY(y)纵向缩放同上正值时竖向拉伸,同skew的区别是:垂直拉伸不带斜线角度
3DscaleZ(z)纵深方向缩放同上2d图形设置没有多大的区别,不过可以看到文字微妙的变化

首先,缩放的倍数就是数字的实际倍数,比如写2就是放大两倍。再者,当数值是大于0的值时,就是放大。当数值在0-1之间的时候,就是缩小。所以 放大还是缩小看的是数值的关系,和正负没有关系。

数值为0就是原来的宽高*0时就看不见了。

数值为1是放大,但是是宽高*1,和没乘一样。还和原来一边大。

另外,计算时不光是乘宽高,内边距padding、边框宽度border-width、甚至外边距margin都跟着升天乘了相应倍数

rotate:N°旋转,正值顺时针旋转,负值逆时针旋转。

Dname含义中心点备注
2rotate(angle)旋转默认中心点就是盒模型的中心点angle值
3Drotate3d(x,y,z,angle)N°旋转同上
3DrotateX(angle)N°旋转同上围绕x轴做水平方向翻转
3DrotateY(angle)N°旋转同上围绕y轴做垂直方向翻转
3DrotateZ(angle)N°旋转同上

translate(x,y):相对于当前位置向水平(x)/垂直(y)方向移动,正值向右/下,负值向左/上

Dname含义中心点备注
2translate(x,y)2d两点位移默认中心点就是盒模型的中心点
3Dtranslate3d(x,y,z)3d三点位移同上
2translateX(x)只是用 X 轴的值位移同上
2translateY(y)只是用 Y 轴的值位移同上
3DtranslateZ(z)只是用 Z 轴的值位移同上

括号里边, 数值后边一定要有单位值 ,如果没有单位值不起作用

translate执行的位移,对于周围的元素不产生任何影响。就像relative的效果。

matrix(n,n,n,n,n,n)

Dname含义中心点备注
2matrix(n,n,n,n,n,n)矩阵,模型默认中心点就是盒模型的中心点6个值的矩阵
3Dmatrix(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n)矩阵,模型同上16个值,4x4矩阵

perspective 规定3D元素的透视效果

张鑫旭讲解文章

perspective(n) 为3D转换元素设置透视视图

  • 规定3D元素的透视效果

  • 目前浏览器都不支持,只有safari和chrome用替代元素-webkit-perspective

  • 只影响有3d转换属性的子元素,是加在父元素身上的。

  • 需要配合perspective-origin一同使用。

perspective-origin 规定3D元素的底部位置

  • 规定3D元素的底部位置 ??

  • 大致属性同perspective

  • perspective-origin : 50% 200px; 为什么第一个是百分比,第二个是像素值?可以有的值或格式:top,bottom,center,length,%。

  • x-axis 定义该视图在x轴上的位置、
  • y-axis 定义该视图在y轴上的位置

perspective-visibility 定义元素在不面对屏幕时是否可见

混合写法

多个属性值之间用逗号隔开即可。

transform: rotate(30deg) scale(.2) skew(20deg);

兼容性及写法

IE10+以上不用想,其他现代浏览器

chrome、safari要加前缀-webkit-

ie9加前缀-ms-

前缀

transform: ;
-moz-transform: ;
-webkit-transform: ;
-ms-transform: ;
-o-transform: ;

转载于:https://www.cnblogs.com/padding1015/p/9550142.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值