31.CSS3变形效果【下】

                                               第二十四章  CSS3变形效果【下】

一、3D变形简介

         【上】讲的是2D,本章讲的是3D(在二维基础上多出一个z轴)。

         属性值                              说明

      translatex,y,z)      3D方式平移元素,设置x,yz

      translateZ(z)           设置3D方式平移元素的z

      scale3d(x,y,z)          3D方式缩放一个元素

      scaleZ(z)               设置3D方式缩放元素的z

      rotate3d(x,y,z,a)       3d方式旋转元素

 

      rotateX(a)              

      rotateY(a)              分别设置3D方式的旋转元素的x,y,z

      rotateZ(a)

 

      perspective(长度值)     设置一个透视投影矩阵

      matrix3d(多个值)        定义一个矩阵

    

     3D变形比2D变形出来的要晚一些,如果需要兼容旧版本浏览器,可以对照这个表

                          Opera     Firefox     Chrome      Safari       IE

         支持需带前缀    1522     1015      1235       48        

         支持不带前缀      23+        16+         26+         无       10.0+

 

     //兼容版本完整形式

     -webkit-transformtranslateZ200px;

                  ·

                  ·

                  ·

二、transform-style:属性是指定嵌套元素如何在3D空间中呈现。

         1flat       :默认值,表示所有子元素在2D平面呈现

         2preserve-3d:表示子元素在3D空间呈现。

 

      //一般设置当前元素的父元素

                 transform-stylepreserve-3d;  (需要配合后面的属性才能看到,同样,这个属性也需要加上前缀)

 

三、perspective:是3D变形的重要属性,该属性会设置查看者位置,并将可视内容映射到一个视锥上,继而投放到一个2D平面上。

            属性值                              说明

             none             默认值,表示无线的角度来看3D物体,但看上去是平的

             长度值           接受一个长度单位大于0的值,其单位不能为百分比,值越大,角度出现的越远。(好比你离远看物体,值越小,正相反)

 

四、3D变形属性

      1translate3d(x,y,z)    //需要3D位移的html结构,必须有父元素包含

                <div id="a">

                       <img src="img.png" alt=""/>

                </div>

          //css部分,父元素设置3D呈现且设置透视距离

            #a{

                perspective:1000px;

                transform-style:preserve-3d;

            }

            img{

               //z轴可以是负值

                transform:translateZ(240px);

            }

      2transformZ(z)    //z轴可以单独设置,z轴可以是负值

            img{;

                transformtranslateZ240px

            }    

      3scale3d(x,y,z)    //3D缩放,单独设置无效,需要配合角度

            img{

                transform:scale3d(1,1,1.5) rotateX(45deg);

            }

      4scaleZ(z)   //单独设置z轴,xy轴默认为1.

            img{

                transform:scaleZ(1.5) rotateX(45deg);

            }

      5rotate3d(x,y,z,a)  //设置3D旋转,a表示角度,xyz010表示未启用,1表示启用)

                transform:scale3d(1,1,145deg);   //xyz轴都启用

                transform:scale3d(1,0,045deg);   //x轴启用,且x轴旋转45

      6rotateXa)、rotateYa)、rotateZa)      //单独设置3D旋转

                transformrotateX45deg);

                      ·

                      ·

                transformrotateX45degrotateY45degrotateZ45deg

 

      CSS3还提供了perspective-origin属性来设置3D变形中的原点角度,该属性的默认值为50% 50%也就是center center

          属性值                     说明

         百分数值           指定元素x轴成y轴的起点      

         长度值             指定距离

 

         left

         center             指定x轴的位置

         right

 

         top

         center             指定y轴的位置

         bottom

 

          //源点设置右上方变形

                  perspective-origin:topright;

 

         CSS3还提供了一个元素中设置透视的值perspective(长度值),但他还是和父元素这只有一定不同,因为父元素整个作为透视,而元素自己作为透视,导致不同

         //具体测试看透视距离

               img{

                   transform:perspective(1000px) rotateY(45px);

               }

posted @ 2018-02-28 18:50  君灬莫笑  阅读(210)  评论(0编辑  收藏  举报