transform

向元素应用 2D 或 3D 转换。该属性允许我们对元素进行旋转、缩放、移动或倾斜。

兼容性: Internet Explorer 10、Firefox、Opera 支持 transform 属性。

Internet Explorer 9 支持替代的 -ms-transform 属性(仅适用于 2D 转换)。

Safari 和 Chrome 支持替代的 -webkit-transform 属性(3D 和 2D 转换)。

Opera 只支持 2D 转换。

兼容性写法: -ms-transform:rotate(20deg); /* IE 9 */

-webkit-transform:rotate(20deg); /* Safari and Chrome */

-moz-transform:rotate(20deg); /* firefox */

-o-transform:rotate(20deg);/* Opera */

语法:

//2d旋转

ransform :rotate(angle) | rotataX(angle) | rotateY(angle) | rotateZ(angle)

//3d旋转

transform :rotate(X,Y,z | angle)

//矩阵

transform: matrix(a,b,c,d,e,f)

//倾斜

skew(X,Y)

//缩放

scale(X,Y)

旋转:rotate(angle)

rotate(angle),通过指定的角度对元素进行2D旋转,正值时顺时针旋转,负值时将逆时针旋转。

transform:rotate(-20deg)

  1. <div class="rotate">
  2. <div><span>我不想旋转</span></div>
  3. </div>
  4. <style>
  5. .rotate div{
  6. width: 100px;
  7. height: 100px;
  8. line-height: 100px;
  9. background: green;
  10. color: #fff;
  11. }
  12. .rotate:hover div{
  13. width: 100px;
  14. height: 100px;
  15. line-height: 100px;
  16. background: green;
  17. color: #fff;
  18. -webkit-transform: rotate(-20deg);
  19. -moz-transform: rotate(-20deg);
  20. transform:rotate(-20deg);
  21. margin-bottom:20px;
  22. cursor: pointer;
  23. transition: 0.5s ease-out;
  24. }
  25. .rotate span {
  26. display:block;
  27. -webkit-transform: rotate(20deg);
  28. -moz-transform: rotate(20deg);
  29. transform:rotate(20deg);
  30. }
  31. </style>

缩放:scale()

缩放scale()具有三种情况:scale(x,y)表示X、Y轴同时放缩(如果只给一个值,x、y轴同时缩放相同倍数,给2个不同得值则根据所给数值进行缩放);scaleX(x)仅向水平方向缩放(x轴);scaleY(y)仅向垂直方向缩放(y轴);但他们的缩放中心点是一样的,中心点就是元素中心的位置,缩放倍数小于1表示缩小X呗,大于1表示放大x倍。

transform:scale(0.8) /*缩小0.8倍*/

  1. <div class="scale">
  2. <div class="scale1"></div>
  3. </div>
  4. <style>
  5. .scale{
  6. width: 200px;
  7. height: 200px;
  8. border: 1px dashed #000;
  9. }
  10. .scale1{
  11. width: 198px;
  12. height: 198px;
  13. background: #ffc0cb;
  14. }
  15. .scale1:hover{
  16. transition: 0.2s;
  17. transform: scale(0.8);
  18. -webkit-transform: scale(0.8);
  19. -moz-transform: scale(0.8);
  20. opacity: 0.9;
  21. cursor: pointer;
  22. }
  23. </style>

transform:scale(1.5,0.8) /*沿x轴放大1.5倍,沿y轴缩小0.8倍*/

  1. <div class="scale">
  2. <div class="scale2"></div>
  3. </div>
  4. <style>
  5. .scale{
  6. width: 200px;
  7. height: 200px;
  8. border: 1px dashed #000;
  9. }
  10. .scale2{
  11. width: 198px;
  12. height: 198px;
  13. background: #ffc0cb;
  14. }
  15. .scale2:hover{
  16. transition: 0.2s;
  17. transform:scale(1.5,0.8);
  18. -webkit-transform: scale(1.5,0.8);
  19. -moz-transform: scale(1.5,0.8);
  20. opacity: 0.9;
  21. cursor: pointer;
  22. }
  23. </style>

transform:scaleX(1.5) /*沿x轴放大1.5倍*/

  1. <div class="scale">
  2. <div class="scale3"></div>
  3. </div>
  4. <style>
  5. .scale{
  6. width: 200px;
  7. height: 200px;
  8. border: 1px dashed #000;
  9. }
  10. .scale3{
  11. width: 198px;
  12. height: 198px;
  13. background: #ffc0cb;
  14. }
  15. .scale3:hover{
  16. transition: 0.2s;
  17. transform: scaleX(3);
  18. -webkit-transform: scaleX(3);
  19. opacity: 0.9;
  20. cursor: pointer;
  21. }
  22. </style>

位移:translate()

位移:translate()也具有三种情况:translate(x,y)水平方向和垂直方向同时移动(x轴y轴同时移动);translateX(x)仅水平方向移动(X轴移动);translateY(y)仅水平方向移动(X轴移动)

translate(20px,10px)

  1. <div class="scale">
  2. <div class="translate1">translate(20px,10px)</div>
  3. </div>
  4. <style>
  5. .scale{
  6. width: 200px;
  7. height: 200px;
  8. border: 1px dashed #000;
  9. }
  10. .translate1{
  11. width: 200px;
  12. height: 200px;
  13. background: lime;
  14. cursor: pointer;
  15. }
  16. .translate1:hover{
  17.  
  18. transform: translate(20px,10px);
  19. -webkit-transform:translate(20px,10px);
  20. background: #ffc0cb;
  21. transition: 1s;
  22. }
  23. </style>

translateX(100px)

  1. <div class="scale">
  2. <div class="translate2">translateX(100px)</div>
  3. </div>
  4. <style>
  5. .scale{
  6. width: 200px;
  7. height: 200px;
  8. border: 1px dashed #000;
  9. }
  10. .scale2{
  11. width: 198px;
  12. height: 198px;
  13. background: #ffc0cb;
  14. }
  15. .scale2:hover{
  16. transition: 0.2s;
  17. transform:scale(1.5,0.8);
  18. -webkit-transform: scale(1.5,0.8);
  19. -moz-transform: scale(1.5,0.8);
  20. opacity: 0.9;
  21. cursor: pointer;
  22. }
  23. </style>

translateY(100px)

  1. <div class="scale">
  2. <div class="translate3">translateY(100px)</div>
  3. </div>
  4. <style>
  5. .scale{
  6. width: 200px;
  7. height: 200px;
  8. border: 1px dashed #000;
  9. }
  10. .scale3{
  11. width: 198px;
  12. height: 198px;
  13. background: #ffc0cb;
  14. }
  15. .scale3:hover{
  16. transition: 0.2s;
  17. transform: scaleX(3);
  18. -webkit-transform: scaleX(3);
  19. opacity: 0.9;
  20. cursor: pointer;
  21. }
  22. </style>

扭曲/倾斜:skew()

同样,扭曲:skew()也具有三种情况:skew(x,y)水平方向和垂直方向同时发生扭曲变形(x轴y轴扭曲变形,第二个参数为可选参数,如果不填表示Y轴为0deg);skewX(x)仅水平方向发生扭曲(X轴扭曲),skewY(y)仅水平方向发生扭曲(X轴扭曲)

transform: skew(20deg,30deg)

  1. <div class="skew">
  2. <div>
  3. <span>我是文字,我决定不被扭曲</span>
  4. </div>
  5. </div>
  6. <style>
  7. .skew{
  8. width:200px;
  9. height: 200px;
  10. border: 1px dashed #000;
  11. margin-left: 200px;
  12. margin-top: 50px;
  13. }
  14. .skew div{
  15. width:200px;
  16. height: 200px;
  17. background: orange;
  18. transform: skew(20deg,30deg);
  19. -webkit-transform: skew(20deg,30deg);
  20. -moz-transform: skew(20deg,30deg);
  21. -o-transform: skew(20deg,30deg);
  22. -ms-transform: skew(20deg,30deg);
  23. }
  24. .skew span{
  25. display: block;
  26. transform: skew(-20deg,-30deg);
  27. -webkit-transform: skew(-20deg,-30deg);
  28. -moz-transform: skew(-20deg,-30deg);
  29. -o-transform: skew(-20deg,-30deg);
  30. -ms-transform: skew(-20deg,-30deg);
  31. }
  32. </style>

transform: skew(20deg)/*等价于:transform: skewX(20deg)*/

  1. <div class="skew1">
  2. <div>
  3. <span>不填Y的参数,看效果</span>
  4. </div>
  5. </div>
  6. <style>
  7. .skew1{
  8. width:200px;
  9. height: 200px;
  10. border: 1px dashed #000;
  11. margin-left: 200px;
  12. margin-top: 50px;
  13. }
  14. .skew1 div{
  15. width:200px;
  16. height: 200px;
  17. background: orange;
  18. transform: skew(20deg);
  19. -webkit-transform: skew(20deg);
  20. -moz-transform: skew(20deg);
  21. -o-transform: skew(20deg);
  22. -ms-transform: skew(20deg);
  23. }
  24. .skew1 span{
  25. display: block;
  26. transform: skew(-20deg);
  27. -webkit-transform: skew(-20deg);
  28. -moz-transform: skew(-20deg);
  29. -o-transform: skew(-20deg);
  30. -ms-transform: skew(-20deg);
  31. }
  32. </style>

transform: skewY(30deg)

  1. <div class="skew2">
  2. <div>
  3. <span>Y轴扭曲</span>
  4. </div>
  5. </div>
  6. <style>
  7. .skew2{
  8. width:200px;
  9. height: 200px;
  10. border: 1px dashed #000;
  11. margin-left: 200px;
  12. margin-top: 50px;
  13. margin-bottom: 100px;
  14. }
  15. .skew2 div{
  16. width:200px;
  17. height: 200px;
  18. background: orange;
  19. transform: skewY(30deg);
  20. -webkit-transform: skewY(30deg);
  21. -moz-transform: skewY(30deg);
  22. -o-transform: skewY(30deg);
  23. -ms-transform: skewY(30deg);
  24. }
  25. .skew2 span{
  26. display: block;
  27. transform: skewY(-30deg);
  28. -webkit-transform: skewY(-30deg);
  29. -moz-transform: skewY(-30deg);
  30. -o-transform: skewY(-30deg);
  31. -ms-transform: skewY(-30deg);
  32. }
  33. </style>

矩阵:matrix(a,b,c,d,e,f)

transform:matrix(1,0,0,1,0,0)
/**********************/
/*矩阵:matrix(a,b,c,d,e,f)
*a:水平缩放 1为原始大小 应用:scale()
*b:纵向扭曲(拉伸) 0为不变 应用:skew()
*c:横向扭曲(拉伸) 0为不变
*d:垂直缩放 1为原始大小
*e:水平偏移量 0是初始位置 应用:translate()
*f:垂直偏移量 0是初始位置
*/
/**********************/


transform: matrix(0.8,0,0,0.8,10,10);
/*transform: matrix(水平缩小0.8倍,水平拉伸0,垂直拉伸0,垂直缩小0.8倍,水平偏移10px,垂直偏移10px)*/

  1. <div class="matrix">
  2. <div></div>
  3. </div>
  4. <style>
  5. .matrix{
  6. width:200px;
  7. height:200px;
  8. border: 1px dashed #000;
  9. }
  10. .matrix div{
  11. width: 200px;
  12. height: 200px;
  13. background: red;
  14. }
  15. .matrix div:hover{
  16. cursor: pointer;
  17. background: #ffff00;
  18. transform: matrix(0.8,0,0,0.8,10,10);
  19. -webkit-transform: matrix(0.8,0,0,0.8,10,10);
  20. -moz-transform:matrix(0.8,0,0,0.8,10,10);
  21. -o-transform: matrix(0.8,0,0,0.8,10,10);
  22. -ms-transform: matrix(0.8,0,0,0.8,10,10);
  23. transition: 0.5s;
  24. }
  25. </style>

CSS3-transform 转换/变换的更多相关文章

  1. CSS3 Transform变形(2D转换)

    Transform:对元素进行变形:Transition:对元素某个属性或多个属性的变化,进行控制(时间等),类似flash的补间动画.但只有两个关键贞.开始,结束.Animation:对元素某个属性 ...

  2. CSS3 transform变换

    CSS3 transform变换 1.translate(x,y) 设置盒子位移2.scale(x,y) 设置盒子缩放3.rotate(deg) 设置盒子旋转4.skew(x-angle,y-angl ...

  3. 【CSS3】 理解CSS3 transform中的Matrix(矩阵)

    理解CSS3 transform中的Matrix(矩阵) by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu ...

  4. 理解CSS3 transform中的Matrix(矩阵)

    一.哥,我被你吓住了 打架的时候会被块头大的吓住,学习的时候会被奇怪名字吓住(如“拉普拉斯不等式”).这与情感化设计本质一致:界面设计好会让人觉得这个软件好用! 所以,当看到上面“Matrix(矩阵) ...

  5. css3 2d转换3d转换以及动画的知识点汇总

    css3 2d转换 2d转换的方法: 1.移动 translate(x, y) 可以改变元素的位置,x.y可为负值: 2.缩放 scale(x, y) 可以对元素进行水平和垂直方向的缩放,x.y的取值 ...

  6. 理解CSS3 transform中的Matrix(矩阵)——张鑫旭

    by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=2427 一.哥,我被你 ...

  7. CSS3 Transform变形理解与应用

    CSS3 Transform变形理解与应用 Transform:对元素进行变形:Transition:对元素某个属性或多个属性的变化,进行控制(时间等),类似flash的补间动画.但只有两个关键贞.开 ...

  8. css3 transform中的matrix矩阵

    CSS3中的矩阵CSS3中的矩阵指的是一个方法,书写为matrix()和matrix3d(),前者是元素2D平面的移动变换(transform),后者则是3D变换.2D变换矩阵为3*3, 如上面矩阵示 ...

  9. CSS3 transform对普通元素的N多渲染影响

    一.一入transform深似海 一个普普通通的元素,如果应用了CSS3 transform变换,即便这个transform属性值不会改变其任何表面的变化(如scale(1), translate(0 ...

  10. CSS3(transform/transition/animation) 基础 总结

    1.CSS3新增的样式(常用) //颜色透明表示rgba(0,0,0,.5) //圆角(定义角半径)border-radius: 5px 10px 15px 20px; //文字/盒子阴影text-s ...

随机推荐

  1. IOS开发之支付功能概述

    前言:本随笔将对IOS开发的支付功能进行一个概述. 内容大纲: 一.常见的支付方案简介 二.第三方支付SDK 三.苹果官方支付方案 四.Web支付方案 正文: 一.常见的支付方案简介 在微信支付中 微 ...

  2. 基于Ruby的watir-webdriver自动化测试方案与实施(一)

    基于Ruby的watir-webdriver自动化测试方案与实施(五)   基于Ruby的watir-webdriver自动化测试方案与实施(四)   基于Ruby的watir-webdriver自动 ...

  3. SqlServer--聚合函数

    --聚合函数默认把整个表中的数据当做"一组",然后才进行的统计. select * from NewPerson --统计出所有人的年龄的总和 select sum(age) as ...

  4. vs.net Web.csproj.webinfo文件

    使用VS工具打开工程的时候,请直接打开BookShop.sln文件, 请修改WEB/Web.csproj.webinfo文件中的<Web URLPath = "http://local ...

  5. Java程序性能优化——让你的java程序更快、更稳定

    1.Java性能调优概述 1.1.Web服务器,响应时间.吞吐量是两个重要的性能参数. 1.2.程序性能的几个表现: 执行速度:程序的反映是否迅速,响应时间是否足够短 内存分配:分配是否合理,是否过多 ...

  6. Ubuntu14-04 MySQL-5.6.21通用二进制安装

    #卸载mysql /etc/init.d/mysqld stop &> /dev/null killall mysqld &> /dev/null sudo rm -rf ...

  7. [转]MVC过滤器

    本文转自:http://www.cnblogs.com/HopeGi/p/3342083.html APS.NET MVC中(以下简称“MVC”)的每一个请求,都会分配给相应的控制器和对应的行为方法去 ...

  8. Linux Kernel代码艺术——系统调用宏定义

    我们习惯在SI(Source Insight)中阅读Linux内核,SI会建立符号表数据库,能非常方便地跳转到变量.宏.函数等的定义处.但在处理系统调用的函数时,却会遇到一些麻烦:我们知道系统调用函数 ...

  9. 基于移动端Reactive Native轮播组件的应用与开发详解

    总结下这段时间学习reactive native的一些东西,我们来认识一下,被炒得这么火的rn,究竟是个什么东西,以及如何去搭建自己的demo. reactive  native是什么 由facebo ...

  10. idea如何设置类头注释和方法注释

    CSDN 2016博客之星评选结果公布      [系列直播]算法与游戏实战技术      "我的2016"主题征文活动 详细:idea如何设置类头注释和方法注释 标签: idea ...