CSS3的透視點(perspective)是指在三維空間中視覺觀察一個物體時,觀察者所在的位置和角度。在CSS3中,通過perspective屬性來設置一個元素的透視點,可以讓該元素以三維的方式呈現出來。
.box { perspective: 500px; transform-style: preserve-3d; transform: rotateX(30deg) rotateY(45deg); }
上面的代碼設置了一個class為“box”的元素的透視點為500px,讓它以3D的方式呈現出來。屬性transform-style: preserve-3d表示它下面的子元素也要繼承該元素的3D屬性進行渲染。
在設置透視點之后,我們可以通過transform屬性來對元素進行旋轉、平移、縮放等變換。如上面的代碼中,我們對元素進行了X、Y軸上的旋轉,使得該元素呈現出45度的角度。
通過設置透視點和變換屬性,我們可以制作出各種炫酷的3D效果,如翻頁效果、旋轉立方體等等。下面是一個簡單的立方體旋轉代碼:
.cube { width: 100px; height: 100px; position: relative; transform-style: preserve-3d; animation: spin 5s infinite linear; } .cube:before, .cube:after { content: ""; position: absolute; width: 100%; height: 100%; background-color: red; opacity: 0.7; } .cube:before { transform: rotateY(90deg) translateX(50px); } .cube:after { transform: rotateX(90deg) translateY(-50px); } @keyframes spin { 0% { transform: rotateX(0deg) rotateY(0deg); } 100% { transform: rotateX(360deg) rotateY(360deg); } }
上述代碼通過:before和:after偽元素生成了一個立方體,通過transform屬性進行旋轉變換并加上了無限循環的動畫效果。如果想要制作更多絢爛的3D效果,只需要細心琢磨perspective和transform的屬性使用方法,相信你也能做出很棒的3D場景。