CSS3 3D 魔方是一種用 CSS3 技術實現的可交互式魔方,它的實現原理是通過使用 CSS3 的 3D 轉換屬性,將一個立方體分成六個面,并對每個面進行不同的旋轉和傾斜,使其呈現出立體感和逼真的效果。
.cube{ position: relative; width: 200px; height: 200px; transform-style: preserve-3d; transition: transform 1s; } .cube:hover{ transform: rotateY(90deg); } .cube .side{ position: absolute; width: 200px; height: 200px; backface-visibility: hidden; } .cube .front{ transform: translateZ(100px); } .cube .back{ transform: translateZ(-100px) rotateY(180deg); } .cube .top{ transform: rotateX(-90deg) translateZ(100px); } .cube .bottom{ transform: rotateX(90deg) translateZ(100px); } .cube .left{ transform: rotateY(-90deg) translateZ(100px); } .cube .right{ transform: rotateY(90deg) translateZ(100px); }
以上代碼實現了一個基本的 3D 魔方立方體,其中 transform-style 指定立方體的子元素也應用 3D 變換。transition 指定鼠標懸停在立方體上時的動畫效果。
接下來是每個面的 CSS 樣式設置。其中 front 面通過 translateZ 將該面朝外平移,而 back 面將該面朝內平移,同時通過 rotateY 旋轉 180 度,使其對面的關系得以保留。left、right、top 和 bottom 面分別通過旋轉和平移變換得到其位置和方向。
通過對立方體不同面的調整,可以實現各種不同的效果,比如旋轉、傾斜、翻轉等,這里只展示了一個最基本的示例。