Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CSS3 转换(Transform)

CSS3 转换(Transform)

作者头像
py3study
发布于 2020-01-14 08:13:34
发布于 2020-01-14 08:13:34
81900
代码可运行
举报
文章被收录于专栏:python3python3
运行总次数:0
代码可运行

转换 transform

能够对元素进行移动、缩放、转动、拉长或拉伸

CSS中,允许元素实现 2D 和 3D的转换效果,主要包含 :旋转,缩放,移动,倾斜        

2D :元素只能在X轴和Y轴平面上发生变化       

3D :元素还可以在 Z轴上发生变化

取值:

none:无转换

2D Transform Functions:

matrix():

以一个含六值的(a,b,c,d,e,f)变换矩阵的形式指定一个2D变换,相当于直接应用一个[a,b,c,d,e,f]变换矩阵

translate():

指定对象的2D translation(2D平移)。第一个参数对应X轴,第二个参数对应Y轴。如果第二个参数未提供,则默认值为0

translatex():

指定对象X轴(水平方向)的平移

translatey():

指定对象Y轴(垂直方向)的平移

rotate():

指定对象的2D rotation(2D旋转),需先有 <' transform-origin '> 属性的定义

scale():

指定对象的2D scale(2D缩放)。第一个参数对应X轴,第二个参数对应Y轴。如果第二个参数未提供,则默认取第一个参数的值

scalex():

指定对象X轴的(水平方向)缩放

scaley():

指定对象Y轴的(垂直方向)缩放

skew():

指定对象skew transformation(斜切扭曲)。第一个参数对应X轴,第二个参数对应Y轴。如果第二个参数未提供,则默认值为0

skewx():

指定对象X轴的(水平方向)扭曲

skewy():

指定对象Y轴的(垂直方向)扭曲

3D Transform Functions:

matrix3d():

以一个4x4矩阵的形式指定一个3D变换

translate3d():

指定对象的3D位移。第1个参数对应X轴,第2个参数对应Y轴,第3个参数对应Z轴,参数不允许省略

translatez():

指定对象Z轴的平移

rotate3d():

指定对象的3D旋转角度,其中前3个参数分别表示旋转的方向x,y,z,第4个参数表示旋转的角度,参数不允许省略

rotatex():

指定对象在x轴上的旋转角度

rotatey():

指定对象在y轴上的旋转角度

rotatez():

指定对象在z轴上的旋转角度

scale3d():

指定对象的3D缩放。第1个参数对应X轴,第2个参数对应Y轴,第3个参数对应Z轴,参数不允许省略

scalez():

指定对象的z轴缩放

perspective():

指定透视距离

1、2D转换

    使元素在x轴 和 y轴上所进行的转换效果可以称之为2D转换,包括:位移、缩放、旋转、倾斜

1-1、位移 translate()

    让元素产生一个位置的移动变化效果

函数:translate(一个值) -->只在x轴位移距离

          translate(值1,值2) --> 在x轴和y轴的位移距离

取值:数值 | 百分比,可以取负值

           x为正,则向右移动; x为负,则向左移动。

           y为正,则向下移动; y为负,则向上移动。

代码示例如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!doctype html>
<html>
 <head>
  <meta charset="UTF-8">
  <title>位移</title>
  <style>
    div{
      width:100px;
      height:100px;
      /*绝对定位*/
      position:absolute;
      top:0;
      left:0;
    }
    #d1{
      border:1px dotted #333;
    }
    #d2{
      border:1px solid #f00;
      background-color:#ddd;
      opacity:0.5;
      /*位移*/
      -webkit-transform:translate(50px,50px);
            -moz-transform:translate(50px,50px);
            -ms-transform:translate(50px,50px);
            transform:translate(50px,50px);
    }
  </style>
 </head>
 <body>
  <div id="d1"></div>
  <div id="d2"></div>
 </body>
</html>

1-2、缩放  scale()

      改变元素的大小称之为 缩放

函数:scale(), scale(x), scale(x,y)

         注意:如果只给一个值,那么,第二个默认与第一个值相等

取值:默认值为1

          缩小:0到1之间的数值

          放大:大于1的数值

代码示例如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!doctype html>
<html>
 <head>
  <meta charset="UTF-8">
  <title>位移</title>
  <style>
    div{
      width:200px;
      height:200px;
      /*绝对定位*/
      position:absolute;
      top:300px;
      left:400px;
    }
    #d1{
      border:1px dotted #333;
    }
    #d2{
      border:1px solid #f00;
      background-color:#ddd;
      opacity:0.5;
      /*缩放*/
      -webkit-transform:scaleX(1.5);
            -moz-transform:scaleX(1.5);
            -ms-transform:scaleX(1.5);
            transform:scaleX(1.5);
    }
  </style>
 </head>
 <body>
  <div id="d1">原始元素</div>
  <div id="d2">缩放元素</div>
 </body>
</html>

1-3、旋转   rotate( )

    使元素围绕着一个点(转换原点)实现角度的变化 称之为 旋转

函数:rotate( ndeg )

            注意:需先指定旋转原点 <transform-origin>

取值:n取值为正,按顺时针旋转; n取值为负,按逆时针旋转

不指定旋转原点,即按元素中心旋转:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!doctype html>
<html>
 <head>
  <meta charset="UTF-8">
  <title>位移</title>
  <style>
    div{
      width:200px;
      height:200px;
      /*绝对定位*/
      position:absolute;
      top:300px;
      left:400px;
    }
    #d1{
      border:1px dotted #333;
    }
    #d2{
      border:1px solid #f00;
      background-color:#ddd;
      opacity:0.5;
      /*位移*/
      -webkit-transform:rotate(45deg);
      -moz-transform:rotate(45deg);
      -ms-transform:rotate(45deg);
      transform:rotate(45deg);
    }
  </style>
 </head>
 <body>
  <div id="d1">原始元素</div>
  <div id="d2">旋转元素</div>
 </body>
</html>

也可改变默认转换原点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<style>
  div{
    width:200px;
    height:200px;
    /*绝对定位*/
    position:absolute;
    top:300px;
    left:400px;
  }
  #d1{
    border:1px dotted #333;
  }
  #d2{
    border:1px solid #f00;
    background-color:#ddd;
    opacity:0.5;
    /*更改转换原点*/
    -webkit-transform-origin:0px 0px;
    -moz-transform-origin:0px 0px;
    -ms-transform-origin:0px 0px;
    /*位移*/
    -webkit-transform:rotate(45deg);
    -moz-transform:rotate(45deg);
    -ms-transform:rotate(45deg);
    transform:rotate(45deg);
  }
</style>

1-4、倾斜  skew( )

    能够改变元素的形状,以原点位置,让元素围绕着 x轴 或 y轴 按照一定的角度倾斜

函数: skew( x,y) , skew( x ) <==> skewX( ndeg ) , skewY( ndeg )

取值:角度

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!doctype html>
<html>
 <head>
  <meta charset="UTF-8">
  <title>位移</title>
  <style>
    div{
      width:200px;
      height:200px;
      /*绝对定位*/
      position:absolute;
      top:300px;
      left:400px;
    }
    #d1{
      border:1px dotted #333;
    }
    #d2{
      border:1px solid #f00;
      background-color:#ddd;
      opacity:0.5;
      /*向x轴倾斜30deg*/
      -webkit-transform:skew(30deg);
      -moz-transform:skew(30deg);
      -ms-transform:skew(30deg);
      transform:skew(30deg);

    }
  </style>
 </head>
 <body>
  <div id="d1">原始元素</div>
  <div id="d2">倾斜元素</div>
 </body>
</html>

2、3D转换

     在 x轴 和 y轴的基础上,增加对 z轴(空间轴)的转换效果

2-1、perspective 属性

    3D元素的透视效果,假定 人眼 到投射平面的距离

注意:(1)、使用 perspective属性,元素本身不会得到3D转换效果,其子元素才有3D转换效果

          (2)、浏览器兼容性,需带前缀 -webkit-perspective, -moz-perspective, 没有-ms-

2-2、3D转换--旋转

函数:rotateX( xdeg )   rotateY( ydeg )  rotateZ( zdeg )

          rotate3d(x,y,z,deg)   x,y,z 大于0,即表示该轴参与旋转

          rotate3d(1,1,1,45deg);  -->  rotateX(45deg)  rotateY(45deg)  rotateZ(45deg);

          rotate3d(1,0,0,45deg);  -->  rotateX(45deg);

代码示例如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!doctype html>
<html>
 <head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    #parent{
      width:200px;
      height:200px;
      border:1px solid #ddd;
      margin:100px auto;
      /*1、perspective:定义 人眼 到投射平面的距离*/
      -webkit-perspective:1200px;
      -moz-perspective:1200px;
      perspective:1200px;
    }
    #son{
      width:100px;
      height:100px;
      margin:50px auto;
      background-color:#e4393c;
      /*3D转换-旋转*/
      -webkit-transform:rotate3d(1,1,1,45deg);
      -moz-transform:rotate3d(1,1,1,45deg);
      -ms-transform:rotate3d(1,1,1,45deg);
      transform:rotate3d(1,1,1,45deg);
    }
  </style>
 </head>
 <body>
  <!-- 父元素设置 perspective , 子元素实现3d转换 -->
  <div id="parent">
    <div id="son">3d转换元素</div>
  </div>
 </body>
</html>

2-3、3D转换--位移

      在2D基础上,增加了对 z轴上的位移距离

函数:

        translateZ( zdeg )

        取值为正:向着人眼方向移动,物体越大

        取值为负:远离人眼方向,物体越小

        translate3d(x,y,z):左右,上下,前后

2-4、transform-style 属性

作用:如何在3D空间中,呈现被嵌套的元素

          规范了当前元素的子元素,呈现什么样的位置显示

取值

        flat:子元素将不保留其3D位置,呈D位置显示

        preserve-3d:子元素将保留其3D位置

转换的原点  transform-origin

默认位置:原点是在元素的中心位置

取值:数值 | 百分比 | 关键字

两个值:表示x轴 和 y轴的位置

三个值:表示x轴,y轴,z轴

兼容性:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
[CSS3]2D与3D变换技术详解
2D变换是指在二维平面内对元素进行的几何操作。CSS3中的2D变换主要包括以下几种:
DevKevin
2024/08/17
1210
[CSS3]2D与3D变换技术详解
css-transform
上面我们介绍了使用transform对元素进行旋转、缩放、倾斜、移动的方法,这里讲介绍综合使用这几个方法来对一个元素进行多重变形。
踏浪
2019/07/31
1.1K0
CSS3-transform变形功能
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>css变形功能</title> <style> body{ background-color: #b9eef0; } h3,p{ margin:100px 0px; padding-bottom: 10px;
xing.org1^
2018/05/17
6910
CSS3常用转换总结
一、2D转换 translate(npx,npx)    相对当前元素位置移动 /* 实现div向左移动50个像素,并向下移动100个像素 */ div { trans
Leophen
2019/08/23
6030
HTML5+CSS3学习总结(完结)
万维网的核心语言、标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次重大修改,作为HTML语言,具有新的元素、属性和行为。
全栈程序员站长
2022/07/25
2.4K0
HTML5+CSS3学习总结(完结)
CSS3 transform 属性(2D,3D旋转)
Internet Explorer 10、Firefox、Opera 支持 transform 属性。
小小咸鱼YwY
2020/06/19
6910
【前端攻略--HTML/CSS】这是你需要的transform学习教程
transition语法格式:transition: property duration timing-function delay;
野原测试开发
2019/07/10
1K0
css3 动画应用 animations 和transtions transform在加上JavaScript 可以实现硬件加速动画。
transitions(过渡) 被应用于元素指定的属性变化时,该属性经过一段时间逐渐的过渡到最终想要的值。   主要包括四个属性:     执行变换的属性:transition-property 变换延续的时间:transition-duration     变换的速率变化:transition-timing-function     变换延迟时间:transition-delay。     1.transition-propery       语法:transition-property:
用户1197315
2018/01/19
1.7K0
css 总结2 原
 div { transform: translate(50px,100px); -ms-transform: translate(50px,100px);        /* IE 9 */ -webkit-transform: translate(50px,100px);    /* Safari and Chrome */ -o-transform: translate(50px,100px);        /* Opera */ -moz-transform: translate(50px,100px);        /* Firefox */ } div { transform: rotate(30deg); -ms-transform: rotate(30deg);        /* IE 9 */ -webkit-transform: rotate(30deg);    /* Safari and Chrome */ -o-transform: rotate(30deg);        /* Opera */ -moz-transform: rotate(30deg);        /* Firefox */ } div { transform: scale(2,4); -ms-transform: scale(2,4);    /* IE 9 */ -webkit-transform: scale(2,4);    /* Safari 和 Chrome */ -o-transform: scale(2,4);    /* Opera */ -moz-transform: scale(2,4);    /* Firefox */ } div { transform: skew(30deg,20deg); -ms-transform: skew(30deg,20deg);    /* IE 9 */ -webkit-transform: skew(30deg,20deg);    /* Safari and Chrome */ -o-transform: skew(30deg,20deg);    /* Opera */ -moz-transform: skew(30deg,20deg);    /* Firefox */ } translate(x,y)    定义 2D 转换,沿着 X 和 Y 轴移动元素。 translateX(n)    定义 2D 转换,沿着 X 轴移动元素。 translateY(n)    定义 2D 转换,沿着 Y 轴移动元素。 scale(x,y)    定义 2D 缩放转换,改变元素的宽度和高度。 scaleX(n)    定义 2D 缩放转换,改变元素的宽度。 scaleY(n)    定义 2D 缩放转换,改变元素的高度。 transform:translate(0 ,-50%) rotate(45deg);
tianyawhl
2019/04/04
5730
什么C3转换还可以这样玩???用CSS3实现2D转换、3D转换、3D呈现,详细总结及案例演示。
如下代码的效果为:当鼠标悬停在图片上时,图片会顺时针旋转360°,为了更具有动画效果,添加了过渡效果。
阿年、嗯啊
2021/04/29
8590
什么C3转换还可以这样玩???用CSS3实现2D转换、3D转换、3D呈现,详细总结及案例演示。
一篇文章带你了解CSS3 3D 转换知识
使用CSS3 3D变换功能,可以对三维空间中的元素执行基本的变换操作。如移动,旋转,缩放和倾斜。
前端皮皮
2020/11/26
5490
一篇文章带你了解CSS3 3D 转换知识
【一起来烧脑】一步学会CSS3体系
background-image属性添加背景图片 background-size指定背景图像的大小 background-origin属性指定了背景图像的位置区域
达达前端
2019/07/19
7330
【一起来烧脑】一步学会CSS3体系
Web - CSS3浮动定位与背景样式
这篇文章主要介绍了 CSS3 中的浮动定位、背景样式、变形效果等内容。包括 BFC 规范与创建方法、浮动的功能与使用要点、定位的多种方式及特点、边框与圆角的设置、背景的颜色、图片等属性、多种变形效果及 3D 旋转等,还提到了浏览器私有前缀。
stark张宇
2025/02/04
1310
13·灵魂前端工程师养成-CSS动画
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
1.7K0
13·灵魂前端工程师养成-CSS动画
3D变形(CSS3) transform
img { transition:all 0.5s ease 0s; } img:hove {
星辰_大海
2020/09/30
7010
css3 2d与3d变形
2d变形 transform: none | transform-function 1.rotate(角度) Rotate(45deg)往右旋转 Rotate(-60deg)往左旋转
河湾欢儿
2018/09/06
2670
CSS-2D-3D转换
转换在CSS3中可以实现元素的移动(translate)、旋转(rotate)、缩放(scale)等效果
小城故事
2023/02/27
6060
css3动画从入门到精通
什么是css3动画? 通过 CSS3,我们能够创建动画,这可以在许多网页中取代动画图片、Flash 动画以及 JavaScript。 CSS3带来了圆角,半透明,阴影,渐变,多背景图等新的特征,轻松实
xiangzhihong
2018/02/05
2.5K0
css3动画从入门到精通
2D变形(CSS3)
transform是CSS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、倾斜、缩放,甚至支持矩阵方式,配合过渡和即将学习的动画知识,可以取代大量之前只能靠Flash才可以实现的效果。
清出于兰
2020/10/26
6390
css笔记 - transform学习笔记(二)
属于2D/3D上的转换、变形效果。他不是一个动画,他就是变形。比如正方形变平行四边形,再变圆形。都是形状变成另一个形状。
xing.org1^
2018/09/20
1.7K0
相关推荐
[CSS3]2D与3D变换技术详解
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验