CSS3是前端開發中經常使用的技術,它可以實現許多炫酷的效果,如今我們來學習如何用CSS3畫出一個3D圓柱。
.cylinder { /* 設置圓柱的寬度、高度和深度 */ width: 200px; height: 150px; perspective: 500px; transform-style: preserve-3d; } .cylinder .side { /* 設置圓柱兩端的樣式 */ width: 200px; height: 150px; background: #ccc; position: absolute; } .cylinder .side.top { /* 設置圓柱頂部的樣式 */ transform: rotateX(-90deg) translateY(-75px); } .cylinder .side.bottom { /* 設置圓柱底部的樣式 */ transform: rotateX(90deg) translateY(-75px); } .cylinder .side:before { /* 給圓柱兩端添加內部的效果 */ content: ""; width: 200px; height: 150px; position: absolute; background: inherit; box-shadow: inset 0 0 30px rgba(0, 0, 0, 0.3); } .cylinder .side.top:before { /* 確定頂部圓柱內部的位置 */ transform: rotateY(90deg) translateZ(75px); } .cylinder .side.bottom:before { /* 確定底部圓柱內部的位置 */ transform: rotateY(-90deg) translateZ(75px); } .cylinder .side.front { /* 確定圓柱兩側的樣式,需要添加漸變效果實現3D效果 */ width: 150px; height: 150px; background: linear-gradient(to bottom, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0)), linear-gradient(to right, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0)); position: absolute; transform: translateZ(75px); } .cylinder .side.back { /* 確定圓柱兩側的樣式,需要添加漸變效果實現3D效果 */ width: 150px; height: 150px; background: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)), linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); position: absolute; transform: rotateY(180deg) translateZ(-75px); }
以上就是3D圓柱的CSS3實現代碼,我們可以根據自己的需求進行修改,如設置不同的顏色、大小等,來實現不一樣的3D效果。
下一篇css3畫四邊弧