好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

transform 2D 空间转换

transform 2D 平面转换

在以前我们改变元素的位置需要设置 left 、 right 这类的 属性 ,它对其它元素有很大的影响,现在通过 transform 就可以实现任意空 间的 改变了。

1. 官方解释

CSS transform 属性 允许你旋转,缩放,倾斜或平移给定元素。这是通过 修改 CSS 视觉格式化模型的坐标空间来实现的。

2. 解释

transfrom 这个 属性 可以改变 一个 目标元素在 页面 中的位置,例如相对原来元素所在的位置平移,相对原来的尺寸放大或者缩小,也可以旋转或者斜切。

3. 语法

通用坐标轴说明:

x 代表横轴,y 代表纵轴。

坐标轴 效果 图

包含参数:

值 描述 translate(x,y) 可以改变元素的位置,而不会对相邻元素由影响。 translateX(x) 只改变元素的水平位置。 translateY(y) 只改变元素在竖直方向的位置。 scale(x,y) 元素缩放,x 代表水平方向,y 代表竖直方向。 scaleX(x) 仅对元素 x 方向上缩放。 scaleY(y) 仅对元素 y 方向上缩放。 skew(x-angle,y-angle) 定义沿着 X 和 Y 轴的 2D 倾斜转换。 skewX(angle) 定义沿着 X 轴的 2D 倾斜转换。 skewY(angle) 定义沿着 Y 轴的 2D 倾斜转换。 rotate(angle) 在平面上旋转 一个 角度

4. 实例

接下来我们都是对 demo 这个元素进行操作。

    < div   class   =  " demo "   >     </ div  >  
 

使用 translate 让元素位移。

   .demo   { 
      transform  :   translate  ( px,px )  ; 
 } 
 

效果 图

`translate` 让元素位移 效果 图

  <!DOCTYPE html> 
   < html   lang   =  " en "   >  
   < head  >  
       <  Meta    charset   =  " UTF-8 "   >  
       <  Meta    name   =  " viewport "    content   =  " width=device-width, initial-scale=1.0 "   >  
       < title  >  Document   </ title  >  
       < style  >   
         body  { 
             perspective  :  px ; 
             transform-style  :  preserve-d ;    
         } 
          .commn   { 
             width  : px ; 
             height  : px ; 
             text-align  :  center ; 
             line-height  :  px ; 
             background  :  #f2f2f2  ; 
             border  : px solid  #ccc  ;         
             position  :  absolute ;      
             top  :   ; 
             left  :   ; 
            
         } 
          .demo   { 
             z-index  :   ;    
             opacity  :   ;        
             background  :  red ;                
         } 
          .demo-3d   {             
             transform  : translate d  ( px  ,px ,-px )   rotateZ  ( deg )  ; 

         } 
        </ style  >  
   </ head  >  
   < body  >  
       < div   class   =  " commn demo "   >  transfrom3d   </ div  >  
       < div   class   =  " commn demo-3d "   >  transfrom3d   </ div  >  
   </ body  >  
   </ html  >  
 

使用 translateX 让元素水平位移:

   .demo   { 
      transform  :   translateX  ( px )  ; 
 } 
 

效果 图

`translateX` 让元素水平位移 效果 图

使用 translateY 让元素在竖直方向上位移:

   .demo   { 
      transform  :   translateY  ( px )  ; 
 } 
 

效果 图

`translateY` 让元素水平位移 效果 图

使用 scale 对元素缩放:

   .demo   { 
      transform  :   scale  ( , )  ; 
 } 
 

scale 接受 一个 倍数大于 1 时候放大,小于 1 时候缩小。当 x,y 参数的值一样时,可以如下面这样写:

   .demo   { 
      transform  :   scale  (  )  ; 
 } 
 

如果只需要对水平方向缩放,可以向下面这样写,竖直方向同理:

   .demo   { 
      transform  :   scaleX  (  )  ; 
 } 
 

效果 图

缩放 效果 图

使用 skew 对元素倾斜。

   .demo   { 
     transform  :  skew  ( deg,deg )  ; 
 } 
 

效果 图

斜切 效果 图

   .demo   { 
     transform  :  skew  ( deg,deg )  ; 
 } 
 

效果 图

斜切 效果 图

如果只是对 一个 方向斜切可以如下:

   .demo   { 
     transform  :  skewX  ( deg )  ; 
 } 
 

斜切 效果 图

rotate 使元素旋转 一个 角度。在 2D 效果 中它只接受 一个 参数角度,并沿着顺指针方向开始。

   .demo   { 
     transform  :  rotate  ( deg )  ; 
 } 
 

效果 图

旋转 效果 图

5. 兼容性

IE Edge Firefox Chrome Safari Opera ios android 9+ 12+ 28+ 4+ 6.1+ 12.1+ 7+ 4.4

6. 场景

在需要动画渲染改变元素位置时候。 需要对场景进行缩放或者旋转时候。

7. 小结

要分清 transform 和 transition ,后者是过渡; transform 可以使得元素位置改变,而不会影响其他围绕元素,所以可以使用 transform 尽量使用,可以提高浏览器的渲染效率; transform 中斜切的 效果 ,我们拿 X 水平坐标轴为例,其实就是 底部 向右移动 一个 角度,这个角度就是竖直方向偏移的角度。

transform 3D 空间转换 ? ?perspective 透视

查看更多关于transform 2D 空间转换的详细内容...

  阅读:51次

上一篇

下一篇

第1节:CSS3简介    第2节:border 边框    第3节:borderImage 边框图片    第4节:border-radius 圆角    第5节:box-shadow 阴影    第6节:box-sizing 盒类型    第7节:gradients 渐变    第8节:text-justify 对齐    第9节:text-overflow 文字超出    第10节:text-shadow 文本阴影    第11节:word-break 文本打断    第12节:word-wrap 文本换行    第13节:letter-spacing 字间距    第14节:perspective 透视    第15节:transform 2D 空间转换    第16节:transform 3D 空间转换    第17节:transition 过渡    第18节:animation 动画    第19节:columns 字符分割    第20节:flex 弹性盒子布局    第21节:flex order 顺序    第22节:flex: grow、shrink、basis    第23节:flex-direction 排列方向    第24节:justify-content (轴内)对齐方式    第25节:flex-wrap 换行    第26节:align-items 竖直方向对齐方式    第27节:align-content    第28节:Grid 布局简介    第29节:Grid 行和列    第30节:media 媒体查询    第31节:only 元素选择    第32节:before && after 位置    第33节:nth 类型元素选择器    第34节:calc 计算属性