transform三大属性 rotate、scale、translate

transform三大属性 rotate、scale、translate

1、菜鸟教程demo:https://c.runoob.com/codedemo/3391
2、搭配 transform-orgion(动画基点)使用:https://blog.csdn.net/weixin_44167504/article/details/108418195?spm=1001.2014.3001.5501

transform三大属性:rotate(旋转)scale(缩放) 、 translate(移动)
其他属性:skew(扭曲) 、 matrix(矩阵变形)
语法:transform:rotate | scale | skew | translate |matrix;

一. 移动translate
translate()相当于水平平移,+ 表示向右/下,- 表示向左/上
translateX(x)水平方向平移
translateY(y)垂直方向平移
translateZ(z)相当于放大
translate(x,y)相当于水平平移+垂直平移
translate(x,y,z)相当于水平平移+垂直平移+放大

  1. translate(100px)实际上是水平向右平移100px

在这里插入图片描述

  1. translateX(100px)水平向右平移100px

在这里插入图片描述

  1. translateY(100px)水平向下平移100px

在这里插入图片描述

  1. translateZ(100px)相当于放大

在这里插入图片描述

  1. translate(x,y)2D平移,translate(100px,100px)右、下各平移100px

右下角
6. translate3d(20px,20px,100px) 右、下各平移20并放大
在这里插入图片描述

二. 旋转rotate效果图
rotate(angle)定义2D旋转
rotateX(angle)
rotateY(angle)
rotateZ(angle)
rotate3d(angle)定义3d旋转

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>transform</title>

  <style>
    body {
      background: #F5F3F4;
      margin: 0;
      padding: 10px;
      font-family: 'Open Sans', sans-serif;
      text-align: center;
    }

    .card {
      display: inline-block;
      margin: 10px;
      background: #fff;
      padding: 15px;
      min-width: 200px;
      box-shadow: 0 3px 5px #ddd;
      color: #555;
    }

    /* 背景 */
    .card .box {
      width: 100px;
      height: 100px;
      margin: auto;
      background-color: #ddd;
      cursor: pointer;
      box-shadow: 0 0 5px #ccc;
      -webkit-perspective: 1000px;
      -moz-perspective: 1000px;
      perspective: 1000px;
    }

    .card .box .fill {
      width: 100px;
      height: 100px;
      position: relative;
      transform-origin: center;
      -webkit-transition: 0.3s;
      transition: 0.3s;
      background-color: skyblue;
    }

    /* rotate(45deg) */
    .rotate:hover .fill {
      -webkit-transform: rotate(45deg);
      transform: rotate(45deg);
    }

    /* rotateX(45deg) */
    .rotateX:hover .fill {
      -webkit-transform: rotateX(45deg);
      transform: rotateX(45deg);
    }

    /* rotateY(45deg) */
    .rotateY:hover .fill {
      -webkit-transform: rotateY(45deg);
      transform: rotateY(45deg);
    }

    /* rotateZ(45deg) */
    .rotateZ:hover .fill {
      -webkit-transform: rotateZ(45deg);
      transform: rotateZ(45deg);
    }

    /* transform: rotate3d(x,y,z,angle);*/
    /* 角度为整数表示顺时针,角度为负表示逆时针 */
    .rotate3d:hover .fill {
      -webkit-transform: rotate3d(1, 0, 1, -180deg);
      transform: rotate3d(1, 0, 1, -180deg);

    }
  </style>
</head>

<body>
  <!-- 
  transform三大属性:rotate(旋转)
                    scale(缩放)
                    translate(移动)
           其他属性:skew(扭曲)
                    matrix(矩阵变形)

               语法:transform:rotate | scale | skew | translate |matrix;
      一、旋转rotate
          rotate(angle)定义2D旋转 
          rotateX(angle)            
          rotateY(angle)            
          rotateZ(angle)            
          rotate3d(angle)定义3d旋转
          -->
  <!-- rotate(45deg) -->
  <div class="card">
    <div class="box rotate">
      <div class="fill"></div>
    </div>
    <p>rotate(45deg)</p>
  </div>

  <!-- rotateX(45deg) -->
  <div class="card">
    <div class="box rotateX">
      <div class="fill"></div>
    </div>
    <p>rotateX(45deg)</p>
  </div>
  <!-- rotateY(45deg) -->
  <div class="card">
    <div class="box rotateY">
      <div class="fill"></div>
    </div>
    <p>rotateY(45deg)</p>
  </div>
  <!-- rotateZ(45deg) -->
  <div class="card">
    <div class="box rotateZ">
      <div class="fill"></div>
    </div>
    <p>rotateZ(45deg)</p>
  </div>
</body>

</html>

rotate(45deg)
rotateX(45deg)
rotateY(45deg)
transform: rotate3d(1, 0, 1, -180deg);顺时针旋转消失
在这里插入图片描述

三. 缩放scale效果图
scale(数值)定义倍数缩放,>1放大,<1缩小
scaleX()通过x轴定义,仅水平方向缩放
scaleY()通过y轴定义,仅垂直方向缩放
scaleZ()通过z轴定义,定义3d缩放

transform: scale(2);放大两倍在这里插入图片描述

transform: scaleX(2);水平方向放大两倍
在这里插入图片描述

transform: scaleY(2);垂直方向放大两倍在这里插入图片描述
缩小同理。

  • 19
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSS中,transform属性scale用于将元素进行缩放。可以通过设置scale的值来控制元素的大小。例如,当scale的值为1时,元素的大小保持不变;当scale的值大于1时,元素会放大;当scale的值小于1时,元素会缩小。这个属性可以接受一个或两个参数,分别表示水平和垂直方向上的缩放比例。 在给定的代码示例中,transform属性scale值可以通过以下注释部分的代码来进行设置: /*transform:scale(2);*/ // 将元素放大2倍 /*transform:scale(1.5);*/ // 将元素放大1.5倍 以上是设置元素的整体缩放比例,如果只想在一个方向上进行缩放,可以使用scaleX或scaleY属性,分别表示水平和垂直方向上的缩放。例如: /*transform:scaleX(2);*/ // 水平方向放大2倍 /*transform:scaleY(0.5);*/ // 垂直方向缩小一半 可以通过设置transform-origin属性来改变元素的缩放中心点,默认情况下,缩放中心点是元素的中心。 更多关于transform属性的实例和用法可以在http://www.w3cplus.com/content/css3-transform这个网址中找到。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [CSS3属性 transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate)(附代码)](https://blog.csdn.net/qq_37968920/article/details/82391671)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值