HTML(二)transform属性

久未见 提交于 2020-02-07 01:09:24


transform 有四个属性:

  • 位移:translate(x,y)、translateX(x)、translateY(y)、translateZ(z)、translate3d(x,y,z)
      % ——相对于自身宽高的百分比
      px
  • 缩放:scale(x,y)、scaleX(x)、scaleY(y)、scaleZ(z)、scale3d(x,yz)
  • 旋转:rotate(angle)、rotateX(angle)、rotateY(angle)、rotateZ(angle)、rotate3d(x,y,z,angle)
      deg
  • 斜切:skew(x-angle,y-angle)、skewX(angle)、skewY(angle)
      deg

如果 translate 、skew 只有一个参数,就代表 translateX 、skewX;
如果scale 只有一个参数,代表 scale (x , y)

一、translate属性与其他属性组合导致的特殊问题

scale与translate组合

transform: scale(2) translate(100px);
transform: translate(100px) scale(2);

  • transform 组合属性,是按照从左到右的顺序依次实现功能;
  • scale在前 translate在后 ,图形会先以transform-origin 为中心扩大/缩小,之后再进行位移,translate位移的距离也会扩大或缩小scale相应的倍数;
  • translate在前 scale在后 ,图形会先位移,之后再以transform-origin 为中心扩大/缩小
<div class = "box1">box1</div>
<div class = "box2">box2</div>
<div class = "box3">box3</div>
<div class = "box4">box4</div>
<style>
	*{
		margin:0;
		padding:0;
	}
	.box1{
		width:100px;
		height:100px;
		background: pink;
	}
	.box2{
		width:100px;
		height:100px;
		background: skyblue;                  
		transform:  translate(100px) ;
	} 
	.box3{
		width:100px;
		height:100px;
		background: plum;
		transform:  translate(100px) scale(2) ;
		opacity: .5;
		/* transform-origin: left top; */
	}
	.box4{
		width:100px;
		height:100px;
		background: burlywood;
		transform:scale(2) translate(100px);
		opacity: .5;
	} 
</style>

运行结果如下:
在这里插入图片描述

rotate与translate组合

1、当translate 在前,rotate 在后时:
transform : translate(20px) rotate(20deg) ;
当translate 变动时,图形会沿X轴移动;
当translate变动时,还没有rotate旋转,所以此时X轴是水平的,图形就沿水平移动
在这里插入图片描述
1、当rotate 在前,translate 在后时:
transform : rotate(20deg) translate(20px) ;

由于属性的功能是从左到右依次实现的,所以:
当translate变动时,rotate旋转了20度,X轴和Y轴也旋转了20度,图形是沿X轴移动的,所以方向是倾斜的
在这里插入图片描述

skew与translate组合

1、skew图形解析
transform : skewX(45deg)
在这里插入图片描述
所以水平方向的度数变化会影响Y轴

2、当translate 在前,skew 在后时:
transform : translate(20px) skewY(20deg) ;
在这里插入图片描述
3、当skew在前,translate在后时:
transform : skewY(20deg) translate(20px) ;
在这里插入图片描述

二、其他属性

transform-origin 变换基点

transform-origin:               水平   垂直
                      left /right /center   top /bottom /center
                                      %   % (相对于自身宽高的百分比)
                                      px   px(相对于自身左上角的px值)

transform-style

设置元素的子元素是位于 3D 空间中还是平面中
transform-style: flat;
设置元素的子元素位于2D平面中
transform-style: preserve-3d;
设置元素的子元素位于该元素的平面中

【注意】给3D效果的父元素加此属性

backface-visibility

指定当元素背面朝向观察者时是否可见
backface-visibility: visible;
背对屏幕可见
backface-visibility: hidden;
背对屏幕不可见 ------ 3D

perspective

透视效果,近大远小
perspective : 1000px

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!