HTML(二)transform属性

本文详细介绍了HTML的transform属性,包括translate、scale、rotate和skew的用法及组合效果。重点讨论了translate与其他属性组合时的特殊问题,如scale与translate、rotate与translate、skew与translate的组合行为,并解释了transform-origin、transform-style、backface-visibility和perspective等其他属性的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值