CSS3 - 3D位移

使用3D位移時,需給要表現(xiàn)出3D效果元素的父元素增加透視效果樣式,實現(xiàn)近大遠?。?/p>

<style type="text/css">
.parent {
    perspective: 1000px;
    transform-style: preserve-3d;
}
</style>

3D移動

// 沿 x 軸、 y 軸和 z 軸移動
transform:translate3d(x,y,z)
// 沿 x 軸移動
transform:translateX(x)
// 沿 y 軸移動
transform:translateY(y)
// 沿 z 軸移動
transform:translateZ(z)
  • 參數(shù)說明:
    x:設(shè)置元素沿 x 軸水平移動,x 為正數(shù)時水平向右,x 為負數(shù)時水平向左
    y:設(shè)置元素沿 y 軸垂直移動,y 為正數(shù)時垂直向下,y 為負數(shù)時垂直向上
    z:設(shè)置元素沿 z 軸垂直移動,z 為正數(shù)時由遠及近(視覺上放大),z 為負數(shù)時由近及遠(視覺上縮?。?/li>
  • 實例:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .box {
            width: 600px;
            height: 600px;
            position: relative;
            float: left;
            border: 1px solid #EE3030;
            perspective: 1000px;
            transform-style: preserve-3d;
        }

        .box1, .box2 {
            width: 200px;
            height: 200px;
            color: #FFFFFF;
            font-size: 20px;
            text-align: center;
            line-height: 200px;
            background-color: red;
            position: absolute;
            top: 0;
            left: 0;
        }

        .box2 {
            transform: translate3d(250px, 250px, 200px);
        }
</style>
</style>
</head>
<body>
    <div class="box">
        <div class="box1">box1</div>
        <div class="box2">box2</div>
    </div>
</body>
</html>

運行結(jié)果:


旋轉(zhuǎn)元素

// 元素圍繞 x 軸、y 軸、z 軸旋轉(zhuǎn)
transform: rotate3d(x, y, z, angle)
// 元素圍繞 x 軸旋轉(zhuǎn)
transform: rotateX(angle)  <=> transform: rotate3d(1, 0, 0, angle)
// 元素圍繞 y 軸旋轉(zhuǎn)
transform: rotateY(angle)  <=> transform: rotate3d(0, 1, 0, angle)
// 元素圍繞 z 軸旋轉(zhuǎn)
transform: rotateZ(angle)  <=> transform: rotate3d(0, 0, 1, angle)
  • 參數(shù)說明:
    angle:設(shè)置元素旋轉(zhuǎn)的角度,正數(shù)代表順時針旋轉(zhuǎn),負數(shù)代表逆時針旋轉(zhuǎn)。
  • 實例:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .box {
            width: 600px;
            height: 600px;
            position: relative;
            float: left;
            border: 1px solid #EE3030;
            perspective: 1000px;
            transform-style: preserve-3d;
        }

        .box1, .box2 {
            width: 200px;
            height: 200px;
            color: #FFFFFF;
            font-size: 20px;
            text-align: center;
            line-height: 200px;
            background-color: red;
            position: absolute;
            top: 0;
            left: 0;
        }

        .box2 {
            transform: translate3d(250px, 250px, 50px) rotate3d(1, 1, 1, 60deg);
        }
</style>
</style>
</head>
<body>
    <div class="box">
        <div class="box1">box1</div>
        <div class="box2">box2</div>
    </div>
</body>
</html>

運行結(jié)果:


縮放/擴大元素

// 沿 x 軸、y 軸、z軸縮放/擴大元素
transform: scale3d(x, y, z)
// 沿 x 軸縮放/擴大元素
transform: scaleX(x)
// 沿 y 軸縮放/擴大元素
transform: scaleY(y)
// 沿 z軸縮放/擴大元素
transform: scaleZ(z)

-注意:
scaleZ和scale3d函數(shù)單獨使用時,z 軸的效果無法顯示,需與其他變形函數(shù)一起使用才行,且需寫在其他變形函數(shù)之前。

  • 參數(shù)說明:
    x:設(shè)置元素沿 x 軸縮放/擴大的倍數(shù),x 小于1時為縮放,大于1時為擴大。
    y:設(shè)置元素沿 y 軸縮放/擴大的倍數(shù),y 小于1時為縮放,大于1時為擴大。
    z:設(shè)置元素沿 z 軸縮放/擴大的倍數(shù),z 小于1時為縮放,大于1時為擴大。
  • 實例:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .box {
            width: 600px;
            height: 600px;
            position: relative;
            float: left;
            border: 1px solid #EE3030;
            perspective: 1000px;
            transform-style: preserve-3d;
        }

        .box1, .box2 {
            width: 200px;
            height: 200px;
            color: #FFFFFF;
            font-size: 20px;
            text-align: center;
            line-height: 200px;
            background-color: red;
            position: absolute;
            top: 0;
            left: 0;
        }

        .box2 {
            transform: translate3d(250px, 250px, 50px) scale3d(0.5, 0.5, 5) rotateX(45deg) ;
        }
</style>
</style>
</head>
<body>
    <div class="box">
        <div class="box1">box1</div>
        <div class="box2">box2</div>
    </div>
</body>
</html>

運行結(jié)果:


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • CSS里transform變形這個屬性有點學(xué)習(xí)難度,尤其在CSS3里加上了3D效果之后,2維變3維學(xué)習(xí)成本更是成倍...
    BULL_DEBUG閱讀 980評論 0 1
  • CSS3 有3種和動畫相關(guān)的屬性:transform, transition, animation。 概況 其中 ...
    一Left一閱讀 3,404評論 0 3
  • 看了很多視頻、文章,最后卻通通忘記了,別人的知識依舊是別人的,自己卻什么都沒獲得。此系列文章旨在加深自己的印象,因...
    DCbryant閱讀 1,963評論 0 4
  • CSS參考手冊 一、初識CSS3 1.1 CSS是什么 CSS3在CSS2.1的基礎(chǔ)上增加了很多強大的新功能。目前...
    沒汁帥閱讀 4,265評論 1 13
  • CSS里transform變形這個屬性有點學(xué)習(xí)難度,尤其在CSS3里加上了3D效果之后,2維變3維學(xué)習(xí)成本更是成倍...
    張歆琳閱讀 28,362評論 5 81

友情鏈接更多精彩內(nèi)容