CSS 实现一个3d魔方

这篇博客详细介绍了如何使用CSS实现一个3D魔方的效果。内容包括设定正方形尺寸、背景颜色,通过transform-style: preserve-3d创建3D空间,利用box-shadow创建九宫格,并通过transform旋转实现六面体。还涉及到backface-visibility属性消除背面可见,以及perspective属性调整透视效果。最后提供了完整代码和在线预览链接。
摘要由CSDN通过智能技术生成

1.实现效果

2.实现步骤

  • 魔方的一面为九个圆角正方形,定义正方形的宽高为–w,九个正方形的直接的间距为–gap,由此可以计算出父容器的宽/高,box-sizing为border-box
--w: 60px;
--gap: 10px;
--allW: calc(3 * var(--w) + 4 * var(--gap)); 
  • 魔方有六个面,定义六个面中格子的背景颜色,以及六个面的背景色
--c1: #f5e7a1;
--c2: skyblue;
--c3: #fff;
--c4: #97d497;
--c5: #801a1a;
--c6: orange;
--bg: #000; 
  • 设置父容器宽高为–allW
<div class="container"></div> 
.container {width: var(--allW);height: var(--allW);
} 
  • 添加魔方元素的父元素,宽高与父容器一致,设置 transform-style: preserve-3d,指示元素的子元素应位于 3D 空间
<div class="container">
 + <div class="container-box"></div>
</div> 
.container-box {border: 1px solid red;position: relative;width: var(--allW);height: var(--allW);transform-style: preserve-3d;
} 
  • 在container-box添加魔方的其中一面cube-side,absolute定位,宽高与父元素一致,设置一定的圆角,内边距为gap
 <div class="container-box">
	+ <div class="cube-side"></div>
 </div> 
.cube-side {
 width: 100%;
 height: 100%;
 position: absolute;
 background: var(--bg);
 border-radius: 7px;
 padding: var(--gap);
} 
  • 在cube-side中添加一个宫格,设置color为c1,背景色为currentColor

currentColor:

表示元素color属性的计算值。它能让原本不能默认通过属性或子元素继承的颜色属性继承。如果没有设置color就找父元素,一级一级找,直到根元素。

<div class="cube-side">
	+ <div class="cube-grid" style="--c: var(--c1)"></div>
</div> 
.cube-side .cube-grid {width: var(--w);height: var(--w);border-radius: calc(var(--w) / 5);color: var(--c);background: currentColor;
} 

为cube-side添加box-shadow,实现剩余的8个宫格(当然你也可以再写8个宫格,实现九宫格布局

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值