博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CSS3变形transform 2D初级了解
阅读量:6275 次
发布时间:2019-06-22

本文共 4667 字,大约阅读时间需要 15 分钟。

<!doctype html>

<html>
<head>
<meta charset="UTF-8">
<title>test</title>
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.3, user-scalable=no">
<meta content="yes" name="apple-mobile-web-app-capable">
<meta content="black" name="apple-mobile-web-app-status-bar-style">
<meta content="telephone=no" name="format-detection">
<meta content="email=no" name="format-detection">
<style>
    *{margin:0;padding:0;}
    .clearfix{zoom:1;}
    .clearfix:after{content:'\20';display:block;height:0;clear:both;}
    body{font-size:62.5%;padding:0;}
    .con1,.con2,.con3,.con4{width:30px;height:30px;background:#f00;margin:60px auto 0;text-align:center;}
    .con1:hover{
        -webkit-transform:translate(50px,50px) scale(2) rotate(250deg);
        -moz-transform:translate(50px,50px) scale(2) rotate(250deg);
        -o-transform:translate(50px,50px) scale(2) rotate(250deg);
        -ms-transform:translate(50px,50px) scale(2) rotate(250deg);
        transform:translate(50px,50px) scale(2) rotate(250deg);
    }
    /*同一个变形函数中逗号隔开,多个不同变形函数空格隔开,注意写不同浏览器之间的兼容,通用放最下面*/
    .con2:hover{-webkit-transform:skew(-50deg);}

  /*倾斜大于90deg好像会有问题,可能没研究透*/

    .con3:hover{-webkit-transform:translate(-50px,-50px) scale(.5) rotate(-250deg);}
    /*位移X轴负值是向左,正值向右,Y轴负值是向上,正值向下
    缩放值在0-1之间为收缩,大于1为放大,
    旋转正值顺时针旋转,负值逆时针旋转*/
    .con4:hover{-webkit-transform:translate(50px, 50px) translate(-50px, -50px);}
    /*多个位移之间会相叠加减*/
</style>
</head>
<body>
<div class="con1">
    <p>哈</p>
    <p>嘿</p>
</div>
<div class="con2">
    <p>哈</p>
    <p>嘿</p>
</div>
<div class="con3">
    <p>哈</p>
    <p>嘿</p>
</div>
<div class="con4">
    <p>哈</p>
    <p>嘿</p>
</div>

 

<p>2D变形有:translateX(),translateY(),scaleX(),scaleY(),skewX(),skewY(),rotate()</p>

<p>3D变形有:rotateX(),rotateY(),rotateZ(),rotate3d(),translateZ(),translate3d(),scaleZ(),scale3d(),</p>

</body>

</html>

 

 

2D transform常用的transform-function的功能:

  • translate():用来移动元素,可以根据X轴和Y轴坐标重新定位元素位置。在此基础上有两个扩展函数:translateX()translateY()
  • scale():用来缩小或放大元素,可以使用元素尺寸发生变化。在此基础上有两个扩展函数:scaleX()scaleY()
  • rotate():用来旋转元素。
  • skew():用来让元素倾斜。在此基础上有两个扩展函数:skewX()skewY()
  • matrix():定义矩阵变形,基于X轴和Y轴坐标重新定位元素位置。

3D transform常用的transform-function的功能:

  • translate3d():移元素元素,用来指定一个3D变形移动位移量
  • translate():指定3D位移在Z轴的位移量。
  • scale3d():用来缩放一个元素。
  • scaleZ():指定Z轴的缩放向量。
  • rotate3d():指定元素具有一个三维旋转的角度。
  • rotateX()rotateY()rotateZ():让元素具有一个旋转角度。
  • perspective():指定一个透视投影矩阵。
  • matrix3d():定义矩阵变形。

transform-origin属性

默认情况,变形的原点在元素的中心点,或者是元素X轴和Y轴的50%处,

如果我们把元素变换原点transform-origin)设置0(x) 0(y),这个时候元素的变换原点转换到元素的左顶角处

CSS3变形中旋转、缩放、倾斜都可以通过transform-origin属性重置元素的原点,但其中的位移translate()始终以元素中心点进行位移。

改变transform-origin属性的X轴和Y轴的值就可以重置元素变形原点位置,其基本语法如下所示:

transform-origin:[
|
| left | center | right | top | bottom] | [
|
| left | center | right] | [[
|
| left | center | right] && [
|
| top | center | bottom]]
?

可以拆分为

/*只设置一个值的语法*/transform-origin: x-offset /*一个值,百分比,em,px则定位X轴原点*/ transform-origin:offset-keyword /*一个值,left right center定位X轴,top bottom定位Y轴*/ /*设置两个值的语法*/ transform-origin:x-offset y-offset /*两个值,百分比,em,px则第一个数值定位X轴原点第二个数值定位Y轴原点*/ transform-origin:y-offset x-offset-keyword /*两个值,第二个值为left right center则 第一个百分比,em,px值定义Y轴原点*/ transform-origin:10px center中的10px定位的是X轴还是Y轴原点? transform-origin:x-offset-keyword y-offset transform-origin:x-offset-keyword y-offset-keyword/*两个值,都为top left right bottom center,则 left right定义X轴原点,top bottom定义Y轴原点/ transform-origin:y-offset-keyword x-offset-keyword/*两个值,都为top left right bottom center,则 left right定义X轴原点,top bottom定义Y轴原点/ /*设置三个值的语法*/ transform-origin:x-offset y-offset z-offset transform-origin:y-offset x-offset-keyword z-offset transform-origin:x-offset-keyword y-offset z-offset transform-origin:x-offset-keyword y-offset-keyword z-offset transform-origin:y-offset-keyword x-offset-keyword z-offset

transform-origin属性值可以是百分比、em、px等具体的值,也可以是top、right、bottom、left和center这样的关键词。

2D的变形中的transform-origin属性可以是一个参数值,也可以是两个参数值。如果是两个参数值时,第一值设置水平方向X轴的位置,第二个值是用来设置垂直方向Y轴的位置。

3D的变形中的transform-origin属性还包括了Z轴的第三个值。其各个值的取值简单说明如下:

  • x-offset:用来设置transform-origin水平方向X轴的偏移量,可以使用<length><percentage>值,同时也可以是正值(从中心点沿水平方向X轴向右偏移量),也可以是负值(从中心点沿水平方向X轴向左偏移量)。
  • offset-keyword:是toprightbottomleftcenter中的一个关键词,可以用来设置transform-origin的偏移量。
  • y-offset:用来设置transform-origin属性在垂直方向Y轴的偏移量,可以使用<length><percentage>值,同时可以是正值(从中心点沿垂直方向Y轴向下的偏移量),也可以是负值(从中心点沿垂直方向Y轴向上的偏移量)。
  • x-offset-keyword:是leftrightcenter中的一个关键词,可以用来设置transform-origin属性值在水平X轴的偏移量。
  • y-offset-keyword:是topbottomcenter中的一个关键词,可以用来设置transform-origin属性值在垂直方向Y轴的偏移量。
  • z-offset:用来设置3D变形中transform-origin远离用户眼睛视点的距离,默认值z=0,其取值可以<length>,不过<percentage>在这里将无效。
 

转载于:https://www.cnblogs.com/zhp404/articles/4302857.html

你可能感兴趣的文章
CYQ.Data+EasyUI开发:几个相关的问题CheckBox、Tree、TreeGrid
查看>>
Extjs分页使用Java实现数据库数据查询
查看>>
BayWa收购光伏分销商Solarmatrix进军澳大利亚市场
查看>>
股东致函雅虎董事会要求别再烧钱 雅虎反呛
查看>>
移动OA的魅力--大众点评的“企业号”运用法则
查看>>
芯片进口额远超原油 中国芯待发力
查看>>
ARM想将芯片装进人类大脑 降低能耗是一大挑战
查看>>
Oracle数据库的备份方法
查看>>
Selenium 自动登录考勤系统
查看>>
关于如何以编程的方式执行TestNG
查看>>
智能照明造福千家万户 家居智能不再是梦
查看>>
物联网如何跳出“看起来很美”?
查看>>
浅谈MySQL 数据库性能优化
查看>>
拥抱白帽黑客,通用宣布安全漏洞报告项目
查看>>
《UNIX/Linux 系统管理技术手册(第四版)》——1.10 其他的权威文档
查看>>
灵动空间 创享生活
查看>>
《UNIX网络编程 卷1:套接字联网API(第3版)》——8.6 UDP回射客户程序:dg_cli函数...
查看>>
不要将时间浪费到编写完美代码上
查看>>
《第一桶金怎么赚——淘宝开店创业致富一册通》一一第1章 创业梦想,怎样起步...
查看>>
基于容器服务的持续集成与云端交付(三)- 从零搭建持续交付系统
查看>>