CSS3--2D与3D

2D与3D

i.旋转变形--rotate(ndeg):

transform:rotate(ndeg);         n=-360deg~~360deg

CSS3--2D与3D

CSS3--2D与3D 

 

 示例,

* {
            padding: 0;
            margin: 0;
        }
        
        .box {
            margin: 100px auto;
            width: 100px;
            height: 100px;
            border: 1px solid #ccc;
            background-color: #f40;
            line-height: 100px;
            transform-origin: 0 0;
            transform: rotate(45deg);
        }
        
        .box p {
            text-align: center;
            font-size: 50px;
            font-weight: 900;
            transform: rotate(-225deg);
        }
<div class="box">
  <p>福</p>
</div>

CSS3--2D与3D

 

 

ii.缩放变形--scale(n):

transform:scale(n);

CSS3--2D与3D

 注意:如果只带一个参数,表示X和Y都缩放一样的倍数

示例,

.box {
       margin: 100px auto;
       width: 100px;
       height: 100px;
       border: 1px solid #ccc;
       background-color: #f40;
     }
        
.box:hover {
        /* transform: rotateY(45deg) scale(1.2);
           transform: rotateX(45deg) scale(1.2); */
       transform: rotate(45deg) scale(1.2);
    }
<div class="box"></div>

CSS3--2D与3D

 CSS3--2D与3D

 

 

iii.斜切变形--skew():

CSS3--2D与3D

 注意:如果只带一个参数,表示X轴

 

示例,

 .box {
        margin: 100px auto;
        width: 100px;
        height: 100px;
        border: 1px solid #ccc;
        background-color: #f40;
        }
        
.box:hover {
    transform: rotate(45deg) scale(1.2) skew(20deg);
  }
<div class="box"></div>

CSS3--2D与3D

CSS3--2D与3D 

 

 

iv.位移变形--translate():

CSS3--2D与3D

 注意:如果只带一个参数则表示X和Y都一样

 

v.调整元素的基点--origin:

transform-origin: x-axis y-axis z-axis;

属性值:

x-axis :定义视图被置于 X 轴的何处。可能的值:left,center,right,length,%。

y-axis :定义视图被置于 Y 轴的何处。可能的值:top,center,bottom,length,%。

z-axis :定义视图被置于 Z 轴的何处。可能的值:length

示例,

.box {
            margin: 100px auto;
            width: 100px;
            height: 100px;
            border: 1px solid #ccc;
            background-color: #f40;
        }
        
        .box:hover {
            transform: translate(10px) rotate(45deg) scale(1.2) skew(20deg);
            /* 以左上角为旋转点 */
            transform-origin: left top;
        }
<div class="box"></div>

CSS3--2D与3D

 CSS3--2D与3D

 

 

vi.透视效果--perspective:

perspective:length|none;

主流浏览器都不支持,谷歌要加-webkit-,或在长度后加单位

CSS3--2D与3D

 

vii.3D效果--transform-style:

在3D空间中呈现被嵌套的元素(必须与 transform 属性一同使用)

transform-style: flat|preserve-3d;

示例,

.box {
            margin: 100px auto;
            width: 100px;
            height: 100px;
            border: 1px solid #ccc;
            background-color: #f40;
            transform: rotateY(60deg);
            -webkit-transform-style: preserve-3d;
            -moz-transform-style: perspective-3d;
            -ms-transform-style: perspective-3d;
            transform-style: preserve-3d;
        }
<div class="box"></div>

CSS3--2D与3D

 

 

viii.3D旋转:

CSS3--2D与3D

CSS3--2D与3D 

 

 示例,

 

* {
    padding: 0;
    margin: 0;
  }
        
p {
     width: 100px;
     height: 100px;
     border: 1px solid #000;
     background-color: #f40;
   }
        
.box {
       margin: 100px auto;
       width: 102px;
       height: 102px;
       border: 1px solid #000;
       /* 透视强度 */
       perspective: 50px;
   }
        
.box p {
         transform: rotateX(30deg);
     }
<div class="box">
     <p></p>
</div>

CSS3--2D与3D

 

 

viiii.空间移动:

CSS3--2D与3D

CSS3--2D与3D 

 

 示例,

* {
            margin: 0;
            padding: 0;
        }
        
        p {
            width: 200px;
            height: 200px;
            border: 1px solid #000;
            background-color: orange;
        }
        
        .box1 {
            width: 202px;
            height: 202px;
            border: 1px solid #000;
            margin: 50px auto;
            perspective: 300px;
        }
        
        .box1 p {
            transform: rotateX(30deg) translateX(100px) translateY(100px) translateZ(100px);
        }
<div class="box1">
   <p></p>
</div>

CSS3--2D与3D

 

 

综合案例:

 * {
            margin: 0;
            padding: 0;
        }
        
        .box {
            width: 200px;
            height: 200px;
            border: 1px solid #000;
            margin: 100px auto;
            perspective: 300px;
            position: relative;
        }
        
        .box p {
            position: absolute;
            top: 0;
            left: 0;
            width: 200px;
            height: 200px;
        }
        
        .box p:nth-child(1) {
            background-color: rgba(219, 56, 211, 0.486);
            /* 前面 */
            transform: translateZ(100px);
        }
        
        .box p:nth-child(2) {
            background-color: rgba(42, 128, 199, 0.486);
            /* 顶面 */
            transform: rotateX(90deg) translateZ(100px);
        }
        
        .box p:nth-child(3) {
            background-color: rgba(56, 219, 83, 0.486);
            /* 背面 */
            transform: rotateX(180deg) translateZ(100px);
        }
        
        .box p:nth-child(4) {
            background-color: rgba(213, 216, 32, 0.486);
            /* 底面 */
            transform: rotateX(-90deg) translateZ(100px);
        }
        
        .box p:nth-child(5) {
            background-color: rgba(236, 82, 102, 0.486);
            /* 侧面 */
            transform: rotateY(90deg) translateZ(100px);
        }
        
        .box p:nth-child(6) {
            background-color: rgba(119, 17, 236, 0.486);
            /* 侧面 */
            transform: rotateY(-90deg) translateZ(100px);
        }
<div class="box">
        <p></p>
        <p></p>
        <p></p>
        <p></p>
        <p></p>
        <p></p>
</div>

CSS3--2D与3D

 

 

上一篇:U3D的第一天


下一篇:管理虚拟化数据中心的新方向