CSS3-transform 转换/变换

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)

<div class="rotate">
        <div><span>我不想旋转</span></div>
</div>
<style>
.rotate div{
            width: 100px;
            height: 100px;
            line-height: 100px;
            background: green;
            color: #fff;
        }
 .rotate:hover div{
            width: 100px;
            height: 100px;
            line-height: 100px;
            background: green;
            color: #fff;
            -webkit-transform: rotate(-20deg);
            -moz-transform: rotate(-20deg);
            transform:rotate(-20deg);
            margin-bottom:20px;
            cursor: pointer;
            transition: 0.5s ease-out;
        }
        .rotate span {
            display:block;
            -webkit-transform: rotate(20deg);
            -moz-transform: rotate(20deg);
            transform:rotate(20deg);
        }
</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倍*/

<div class="scale">
        <div class="scale1"></div>
</div>
<style>
.scale{
            width: 200px;
            height: 200px;
            border: 1px dashed #000;
        }
.scale1{
            width: 198px;
            height: 198px;
            background: #ffc0cb;
        }
.scale1:hover{
            transition: 0.2s;
            transform: scale(0.8);
            -webkit-transform: scale(0.8);
            -moz-transform: scale(0.8);
            opacity: 0.9;
            cursor: pointer;
        }
</style>

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

<div class="scale">
        <div class="scale2"></div>
</div>
<style>
.scale{
            width: 200px;
            height: 200px;
            border: 1px dashed #000;
        }
.scale2{
            width: 198px;
            height: 198px;
            background: #ffc0cb;
        }
.scale2:hover{
            transition: 0.2s;
            transform:scale(1.5,0.8);
            -webkit-transform: scale(1.5,0.8);
            -moz-transform: scale(1.5,0.8);
            opacity: 0.9;
            cursor: pointer;
        }
</style>

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

<div class="scale">
        <div class="scale3"></div>
</div>
<style>
.scale{
            width: 200px;
            height: 200px;
            border: 1px dashed #000;
        }
.scale3{
            width: 198px;
            height: 198px;
            background: #ffc0cb;
        }
        .scale3:hover{
            transition: 0.2s;
            transform: scaleX(3);
            -webkit-transform: scaleX(3);
            opacity: 0.9;
            cursor: pointer;
        }
</style>

位移:translate()

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

translate(20px,10px)

<div class="scale">
        <div class="translate1">translate(20px,10px)</div>
</div>
<style>
.scale{
            width: 200px;
            height: 200px;
            border: 1px dashed #000;
        }
.translate1{
            width: 200px;
            height: 200px;
            background: lime;
            cursor: pointer;
        }
.translate1:hover{

            transform: translate(20px,10px);
            -webkit-transform:translate(20px,10px);
            background: #ffc0cb;
            transition: 1s;
        }
</style>

translateX(100px)

<div class="scale">
        <div class="translate2">translateX(100px)</div>
</div>
<style>
.scale{
            width: 200px;
            height: 200px;
            border: 1px dashed #000;
        }
.scale2{
            width: 198px;
            height: 198px;
            background: #ffc0cb;
        }
.scale2:hover{
            transition: 0.2s;
            transform:scale(1.5,0.8);
            -webkit-transform: scale(1.5,0.8);
            -moz-transform: scale(1.5,0.8);
            opacity: 0.9;
            cursor: pointer;
        }
</style>

translateY(100px)

<div class="scale">
        <div class="translate3">translateY(100px)</div>
</div>
<style>
.scale{
            width: 200px;
            height: 200px;
            border: 1px dashed #000;
        }
.scale3{
            width: 198px;
            height: 198px;
            background: #ffc0cb;
        }
.scale3:hover{
            transition: 0.2s;
            transform: scaleX(3);
            -webkit-transform: scaleX(3);
            opacity: 0.9;
            cursor: pointer;
        }
</style>

扭曲/倾斜:skew()

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

transform: skew(20deg,30deg)

<div class="skew">
        <div>
            <span>我是文字,我决定不被扭曲</span>
        </div>
</div>
<style>
.skew{
            width:200px;
            height: 200px;
            border: 1px dashed #000;
            margin-left: 200px;
            margin-top: 50px;
        }
.skew div{
            width:200px;
            height: 200px;
            background: orange;
            transform: skew(20deg,30deg);
            -webkit-transform: skew(20deg,30deg);
        -moz-transform: skew(20deg,30deg);
        -o-transform: skew(20deg,30deg);
        -ms-transform: skew(20deg,30deg);
        }
.skew span{
            display: block;
            transform: skew(-20deg,-30deg);
            -webkit-transform: skew(-20deg,-30deg);
        -moz-transform: skew(-20deg,-30deg);
        -o-transform: skew(-20deg,-30deg);
        -ms-transform: skew(-20deg,-30deg);
        }
</style>

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

<div class="skew1">
        <div>
            <span>不填Y的参数,看效果</span>
        </div>
</div>
<style>
.skew1{
            width:200px;
            height: 200px;
            border: 1px dashed #000;
            margin-left: 200px;
            margin-top: 50px;
        }
 .skew1 div{
            width:200px;
            height: 200px;
            background: orange;
            transform: skew(20deg);
            -webkit-transform: skew(20deg);
        -moz-transform: skew(20deg);
        -o-transform: skew(20deg);
        -ms-transform: skew(20deg);
        }
 .skew1 span{
            display: block;
            transform: skew(-20deg);
            -webkit-transform: skew(-20deg);
        -moz-transform: skew(-20deg);
        -o-transform: skew(-20deg);
        -ms-transform: skew(-20deg);
        }
</style>

transform: skewY(30deg)

<div class="skew2">
       <div>
            <span>Y轴扭曲</span>
        </div>
</div>
<style>
.skew2{
            width:200px;
            height: 200px;
            border: 1px dashed #000;
            margin-left: 200px;
            margin-top: 50px;
            margin-bottom: 100px;
        }
.skew2 div{
            width:200px;
            height: 200px;
            background: orange;
            transform: skewY(30deg);
            -webkit-transform: skewY(30deg);
            -moz-transform: skewY(30deg);
            -o-transform: skewY(30deg);
        -ms-transform: skewY(30deg);
        }
.skew2 span{
            display: block;
            transform: skewY(-30deg);
            -webkit-transform: skewY(-30deg);
        -moz-transform: skewY(-30deg);
        -o-transform: skewY(-30deg);
        -ms-transform: skewY(-30deg);
        }
</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)*/

<div class="matrix">
    <div></div>
</div>
<style>
.matrix{
width:200px;
height:200px;
border: 1px dashed #000;
}
.matrix div{
            width: 200px;
            height: 200px;
            background: red;
        }
.matrix div:hover{
            cursor: pointer;
            background: #ffff00;
            transform: matrix(0.8,0,0,0.8,10,10);
            -webkit-transform: matrix(0.8,0,0,0.8,10,10);
        -moz-transform:matrix(0.8,0,0,0.8,10,10);
        -o-transform: matrix(0.8,0,0,0.8,10,10);
        -ms-transform: matrix(0.8,0,0,0.8,10,10);
            transition: 0.5s;
        }
</style>

时间: 2024-10-29 19:51:20

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

css3 transform转换

1.先说说css的坐标系: x轴的正方向就是水平向右的方向 y轴的正方向就是垂直向下的方向 z轴的正方向就是屏幕到用户的方向 2.位移 translate(x,y):2d位移 translateX(n) 设置x轴方向的位移 translateY(n) 设置y轴方向的位移 translate3d(x,y,z):3d位移 translateZ(n) 设置z轴方向的位移 参数可以是具体的像素值,也可以是百分比(基于自己的宽高) 语法: transform:translate(200px,0); 3.缩

CSS3 2D 转换【旋转transform:rotate(30deg); 移动transform: translate(50px,100px); 放大缩小transform:scale(2,4)】

CSS3 2D 转换 CSS3 转换 CSS3转换,我们可以移动,比例化,反过来,旋转,和拉伸元素. 它是如何工作? 变换的效果,让某个元素改变形状,大小和位置. 您可以转换您使用2D或3D元素. 浏览器支持 表格中的数字表示支持该属性的第一个浏览器版本号. 紧跟在 -webkit-, -ms- 或 -moz- 前的数字为支持该前缀属性的第一个浏览器版本号. Property           transform 36.0 4.0 -webkit- 10.0 9.0 -ms- 16.0 3.5

如何使用 css3 transform 属性来变换背景图?

本文和大家分享的主要是使用 css3 transform 属性来变换背景图相关内容,一起来看看吧,希望对大家学习css3有所帮助. 使用 css3 transform 属性可以轻易的旋转,倾斜,缩放任何元素.目前即使没有任何前缀也可以在绝大部分浏览器上很好的使用 . 如果你要在黑莓浏览器或者 UC 浏览器使用这个属性, 你需要加 -webkit- 前缀. #myelement { -webkit-transform: rotate(30deg); transform: rotate(30deg)

5.5 CSS3 transform变换

CSS3 transform变换 1.translate(x,y) 设置盒子位移2.scale(x,y) 设置盒子缩放3.rotate(deg) 设置盒子旋转4.skew(x-angle,y-angle) 设置盒子斜切5.perspective 设置透视距离6.transform-style flat | preserve-3d 设置盒子是否按3d空间显示7.translateX.translateY.translateZ 设置三维移动8.rotateX.rotateY.rotateZ 设置三维

CSS3 transition动画、CSS3 transform变换、CSS3 animation动画

CSS3 transition动画 1.transition-property 设置过渡的属性,比如:width height background-color2.transition-duration 设置过渡的时间,比如:1s 500ms3.transition-timing-function 设置过渡的运动方式 linear 匀速 ease 开始和结束慢速 ease-in 开始是慢速 ease-out 结束时慢速 ease-in-out 开始和结束时慢速 cubic-bezier(n,n,

理解CSS3 transform中的Matrix(矩阵)

一.哥,我被你吓住了 打架的时候会被块头大的吓住,学习的时候会被奇怪名字吓住(如“拉普拉斯不等式”).这与情感化设计本质一致:界面设计好会让人觉得这个软件好用! 所以,当看到上面“Matrix(矩阵)”的时候,难免会心生畏惧(即使你已经学过),正常心理.实际上,这玩意确实有点复杂. 然而,这却是屌丝逆袭的一个好机会. CSS同行间:你是不是有这样的感觉:哎呀呀,每天就是对着设计图切页面,貌似技术没有得到实质性地提升啊,或者觉得日后高度有限! 我们应该都知道二八法则(巴莱多定律),即任何一组东西中

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

css3 2d转换 2d转换的方法: 1.移动 translate(x, y) 可以改变元素的位置,x.y可为负值: 2.缩放 scale(x, y) 可以对元素进行水平和垂直方向的缩放,x.y的取值可为小数,不可为负值: 4.旋转 rotate(deg) 可以对元素进行旋转,正值为顺时针,负值为逆时针: 5.倾斜 skew(deg, deg) 可以使元素按一定的角度进行倾斜 2d转换的属性: transform transform-origin 用法: 例如: div { transform:

css3 transform中的matrix矩阵

CSS3中的矩阵CSS3中的矩阵指的是一个方法,书写为matrix()和matrix3d(),前者是元素2D平面的移动变换(transform),后者则是3D变换.2D变换矩阵为3*3, 如上面矩阵示意图:3D变换则是4*4的矩阵. 有些迷糊?恩,我也觉得上面讲述有些不合时宜.那好,我们先看看其他东西,层层渐进——transform属性. 具体关于transform属性具体内容可以点击这里补个课.稍微熟悉的人都知道,transform中有这么几个属性方法: .trans_skew { trans

CSS3 Transform变形理解与应用

CSS3 Transform变形理解与应用 Transform:对元素进行变形:Transition:对元素某个属性或多个属性的变化,进行控制(时间等),类似flash的补间动画.但只有两个关键贞.开始,结束.Animation:对元素某个属性或多个属性的变化,进行控制(时间等),类似flash的补间动画.可以设置多个关键贞. Transition与Animation:transition需要触发一个事件 ,而animation在不需要触发任何事件的情况下也可以显式的随着时间变化来改变元 素cs

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

by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=2427 一.哥,我被你吓住了 打架的时候会被块头大的吓住,学习的时候会被奇怪名字吓住(如“拉普拉斯不等式”).这与情感化设计本质一致:界面设计好会让人觉得这个软件好用! 所以,当看到上面“Matrix(矩阵)”的时候,难免会心生畏惧(即使你已经学过),正常心理.实际上,这玩意确实有点复杂. 然而,这却是屌丝逆袭的一个好机