CSS能夠幫助我們實現各種酷炫的效果,比如畫一個3D球。下面我們就來看看如何借助CSS來實現這個效果。
.ball { position: relative; width: 200px; height: 200px; border-radius: 50%; border: 5px solid #333; transform-style: preserve-3d; animation: rotation 5s linear infinite; } .ball::before { content: ""; position: absolute; width: 100%; height: 100%; background: radial-gradient(circle, #fff 40%, transparent 40%); border-radius: 50%; transform: translateZ(5px); } .ball::after { content: ""; position: absolute; width: 100%; height: 100%; background: radial-gradient(circle, #fff 40%, transparent 40%); border-radius: 50%; transform: translateZ(-5px); } @keyframes rotation { 0% { transform: rotateX(0) rotateY(0) rotateZ(0); } 100% { transform: rotateX(360deg) rotateY(360deg) rotateZ(360deg); } }
如上所示,我們首先定義了一個.ball類來表示球體,在類的樣式中設置了球體的基本屬性,如寬高、邊框、邊框顏色等。同時,我們使用了transform-style屬性來告訴瀏覽器我們要使用3D變換,而animation屬性則是用來設置球體的旋轉效果。
接下來我們使用偽類來為球體添加上下半球的效果。我們分別定義了.ball::before和.ball::after兩個偽類來表示球的兩個半面,并使用了transform屬性使其向z軸方向移動。然后設置這些元素的樣式,如background以及border-radius等。
最后,我們使用了CSS3中的keyframes關鍵字來定義了一個名為rotation的動畫,這個動畫可以使球體無限旋轉。在動畫中,我們使用了三個rotate屬性來分別表示沿x、y、z軸旋轉的角度。
到這里,我們就成功實現了一個簡單的3D球體。使用CSS畫3D球并不難,只需要掌握好一些基本的CSS屬性和動畫知識就可以了。