如何用CSS3創建Webpack風格的立方體Logo,解決旋轉和遮擋問題?

使用css3構建webpack風格的3d立方體logo

本文演示如何用css3創建類似Webpack logo的3D立方體效果,解決旋轉和遮擋問題。 之前的嘗試中,使用多個元素構建立方體導致旋轉和遮擋效果難以實現。目標是:內嵌立方體部分覆蓋外層立方體,并呈現粗邊框樣式。關鍵在于巧妙運用css3transform屬性控制立方體旋轉和層疊,以及通過邊框樣式實現視覺上的粗邊框效果。

如何用CSS3創建Webpack風格的立方體Logo,解決旋轉和遮擋問題?

解決方案采用嵌套div元素構建內外兩個立方體:外層立方體為Webpack logo主體,內層立方體用于遮擋。 通過精確設置transform屬性,控制立方體旋轉角度和位置。

html結構:

立即學習前端免費學習筆記(深入)”;

<div class="cube outer">   <div class="face front"></div>   <div class="face back"></div>   <div class="face top"></div>   <div class="face bottom"></div>   <div class="face left"></div>   <div class="face right"></div>   <div class="cube inner">     <div class="face front"></div>     <div class="face back"></div>     <div class="face top"></div>     <div class="face bottom"></div>     <div class="face left"></div>     <div class="face right"></div>   </div> </div>

CSS樣式:

body {   background: #2b3a42; }  :root {   --depth: 50px; }  .cube {   width: 100px;   height: 100px;   position: relative;   transform-style: preserve-3d;   transform: translate(-50%, -50%) rotateX(-35deg) rotateY(-135deg) translateZ(var(--depth));   position: absolute;   top: 50%;   left: 50%; }  .face {   position: absolute;   width: 100px;   height: 100px;   box-sizing: border-box;   z-index: -1; }  .front {   transform: translateZ(var(--depth)); }  .back {   transform: rotateY(180deg) translateZ(var(--depth)); }  .top {   transform: rotateX(90deg) translateZ(var(--depth)); }  .bottom {   transform: rotateX(-90deg) translateZ(var(--depth)); }  .left {   transform: rotateY(-90deg) translateZ(var(--depth)); }  .right {   transform: rotateY(90deg) translateZ(var(--depth)); }  .outer > .face {   background: #75afcc;   border: 1px solid white; }  .outer > .back, .outer > .top, .outer > .right {   background: none;   border-width: 0.5px;   border-right-width: 5px;   border-bottom-width: 5px;   border-left-width: 5px; /*統一調整粗邊框*/   z-index: 100; }  .inner {   width: 50px;   height: 50px;   transform: translate(-50%, -50%); }  .inner > .face {   --depth: 25px;   width: 50px;   height: 50px;   background: #5299c8; }

通過設置外層立方體部分面的background: none,并調整邊框寬度,實現遮擋和粗邊框效果。 內層立方體尺寸和位置可根據需要調整。 transform-style: preserve-3d; 確保子元素在3D空間中正確渲染。 調整rotateX和rotateY值改變立方體視角。 代碼實現了類似Webpack logo的立方體效果,關鍵在于理解CSS3的transform屬性和層疊上下文。

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享