• 技术文章 >web前端 >html教程

    CSS3-Transform - 说中

    2016-05-20 13:49:28原创647
    Transform-变形

    CSS3 2D Transform

    translate() //移动
    rotate() //旋转
    scale() //缩放
    skew()  //扭曲
    matrix()  //矩阵变形

    translate() 移动:将HTML元素在x-y轴平面上做位移,且不会影响到其他元素

    translate(x,y)水平方向和垂直方向同时移动(也就是X轴和Y轴同时移动)

    translateX(x)仅水平方向移动(X轴移动)

    translateY(y)仅垂直方向移动(Y轴移动)

    例:

    -webkit-transform: translate(20px,20px); /*Webkit内核浏览器:Safari and Chrome*/
    -moz-transform: translate(20px,20px);  /*Mozilla内核浏览器*/
    -o-transform: translate(20px,20px);  /*Opera*/
    -ms-transform:translate(20px,20px);  /*IE9*/
    transform: translate(20px,20px);  /*W3C标准*/

    rotate() 旋转

    需先有transform-origin属性的定义。transform-origin定义的是旋转的基点

    如果设置的值为正数表示顺时针旋转,如果设置的值为负数,则表示逆时针旋转。

    如:

    transform:rotate(30deg);
    

    scale() 缩放

    scale(x,y)使元素水平方向和垂直方向同时缩放(也就是X轴和Y轴同时缩放)

    scaleX(x)元素仅水平方向缩放(X轴缩放)

    scaleY(y)元素仅垂直方向缩放(Y轴缩放)

    但它们具有相同的缩放中心点和基数,其中心点就是元素的中心位置

    缩放基数为1,如果其值大于1元素就放大,反之其值小于1,元素缩小

    如:

    transform:scale(1.5,1.3)

    skew() 扭曲,斜切变换

    skew(x,y)使元素在水平和垂直方向同时扭曲(X轴和Y轴同时按一定的角度值进行扭曲变形)

    skewX(x)仅使元素在水平方向扭曲变形(X轴扭曲变形)

    skewY(y)仅使元素在垂直方向扭曲变形(Y轴扭曲变形)

    如:

    transform:skewX(30deg)

    transform:skewY(10deg)

    matrix() 矩阵变形

    transform: matrix(a,b,c,d,tx,ty);

    本质上scale、skew、rotate、translate的效果都是通过matrix实现的,tx、ty表示位移量,matrix方法更详细的介绍可以参考这里:理解CSS3 transform中的Matrix(矩阵)

    改变元素基点transform-origin

    transform-origin(X,Y):用来设置元素的运动的基点(参照点)。默认点是元素的中心点。其中X和Y的值可以是百分值,em,px

    其中X也可以是字符参数值left,center,right;Y和X一样除了百分值外还可以设置字符值top,center,bottom

    支持transform浏览器

    IE9以下不支持

    CSS3 3D Transform

    3D Transform,2D Transform相比,它给HTML元素在x-y平面加上了z轴

    translate3d(tx,ty,tz):他定义了一个3D的位移方法,增加了z轴的偏移量
    translateZ(tz):这个方法只在Z轴偏移,与translateX()和translateY()相似
    scale3d(sx,sy,sz):在原有的scale方法上增加了z轴的参数
    scaleZ(sz):同理,只放大z轴,与scaleX()和scaleY()类似
    rotate3d(rx,ry,rz):将元素以给定参数的某一个轴方向旋转
    rotateX(angle),rotateY(angle)和rotateZ(angle):只按照某一个轴旋转,rotate3d(1,0,0,30deg)相当于rotateX(30deg),其他类推。
    

    激活元素的3D空间,需要perspective属性,写法有两种:

    transform: perspective( 600px );
    perspective: 600px;
    

    写法 transform:perspective(600px) 适用于单个元素,会对每一个元素做3D视图的变换

    perspective:600px 的写法,需写在父元素上,然后以父元素的视角,对多个子元素进行3D变换,多个子元素共享同一个3D空间

    perspective的参数值,决定了3D效果的强烈程度,可以想象为距离多远去观察元素。值越大,观察距离就越远,同样的旋转值,看起来效果就弱一些;值越小,距离越近,3D效果就更强烈

    perspective-orgin

    同样,对一个元素进行3D变换的时候,变换点都是元素的中心点,如果你想以其他的位置为变换点,那就可以用这个属性来做调整

    transform-style

    这个参数用来共享父元素的3D空间

    transform-style有两个值,一个是默认的flat一个是preserve-3d

    backface-visibility

    backface-visibility 属性可用于隐藏内容的背面。默认情况下,背面可见,这意味着即使在翻转后,变换的内容仍然可见。但当 backface-visibility 设置为 hidden 时,旋转后内容将隐藏确保只有正面可见

    CSS3 3D Transform 理解详见:http://www.zhangxinxu.com/wordpress/2012/09/css3-3d-transform-perspective-animate-transition/

    参考资料:

    http://www.w3cplus.com/content/css3-transform

    http://beiyuu.com/css3-animation/

    http://www.zhangxinxu.com/wordpress/2012/06/css3-transform-matrix-%E7%9F%A9%E9%98%B5/

    http://www.ruanyifeng.com/blog/2014/02/css_transition_and_animation.html

    http://www.zhangxinxu.com/wordpress/2012/09/css3-3d-transform-perspective-animate-transition/

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:CSS3-Transform - 说中
    上一篇:宁皓网2015年各大视频教程合集-包含很多内容 - 福吧资源网 下一篇:CSS3 - animation - 说中
    Web大前端开发直播班

    相关文章推荐

    • 带你了解HTML5 SVG,看看怎么绘制自适应的菱形• html5中块状元素怎么转换为其他元素• javascript的DOM模型• html +CSS+div学习――第二课_html/css_WEB-ITnose• Codeforces Round #262 (Div. 2)-A,B,C,D_html/css_WEB-ITnose

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网