如何用CSS3制作一个内嵌立方体的Webpack Logo

来源:AI大模型作者:小诸葛头衔:草根站长
导读:本期聚焦于小伙伴创作的《如何用CSS3制作一个内嵌立方体的Webpack Logo》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何用CSS3制作一个内嵌立方体的Webpack Logo》有用,将其分享出去将是对创作者最好的鼓励。

Webpack作为前端常用的构建工具,其标志性的内嵌立方体Logo辨识度很高,我们可以通过CSS3的3D变换属性纯手写实现这个效果,不需要依赖任何图片资源。

如何用CSS3制作一个内嵌立方体的Webpack Logo

实现前的准备知识

要实现3D立方体效果,首先需要了解CSS3的几个核心3D相关属性:

  • transform-style: preserve-3d:让子元素保留3D变换空间,默认值是flat,子元素会被压平到父元素的2D平面
  • perspective:设置观察者与z=0平面的距离,值越小3D效果越强烈,通常设置在800px到1200px之间
  • transform的3D变换函数:translate3d(x,y,z)rotateX(angle)rotateY(angle)rotateZ(angle)

基础HTML结构搭建

我们需要一个外层容器作为3D场景,一个中层容器作为立方体的旋转载体,内部6个子元素分别对应立方体的6个面,同时还需要内嵌的小立方体结构。

<div class="webpack-logo">
  <!-- 外层大立方体 -->
  <div class="cube outer-cube">
    <div class="face front"></div>
    <div class="face back"></div>
    <div class="face left"></div>
    <div class="face right"></div>
    <div class="face top"></div>
    <div class="face bottom"></div>
    <!-- 内嵌小立方体 -->
    <div class="cube inner-cube">
      <div class="face front"></div>
      <div class="face back"></div>
      <div class="face left"></div>
      <div class="face right"></div>
      <div class="face top"></div>
      <div class="face bottom"></div>
    </div>
  </div>
</div>

核心CSS样式编写

3D场景基础设置

首先给外层容器设置透视效果,让内部的3D变换能够正常呈现。

.webpack-logo {
  width: 200px;
  height: 200px;
  margin: 50px auto;
  /* 设置透视距离,让3D效果更自然 */
  perspective: 1000px;
}

.cube {
  position: relative;
  width: 100%;
  height: 100%;
  /* 保留子元素的3D空间 */
  transform-style: preserve-3d;
  /* 初始旋转角度,让立方体正面朝向用户 */
  transform: rotateX(-15deg) rotateY(15deg);
  /* 添加旋转动画 */
  animation: rotate 8s linear infinite;
}

立方体面的通用样式

所有立方体面的基础样式一致,通过不同的变换属性放置到对应的位置。

.face {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  /* 半透明背景,方便观察内嵌结构 */
  background: rgba(142, 210, 255, 0.7);
  border: 2px solid #1d78c1;
  box-sizing: border-box;
}

/* 大立方体各个面的位置变换 */
.outer-cube .front {
  transform: translateZ(100px);
}
.outer-cube .back {
  transform: translateZ(-100px) rotateY(180deg);
}
.outer-cube .left {
  transform: translateX(-100px) rotateY(-90deg);
}
.outer-cube .right {
  transform: translateX(100px) rotateY(90deg);
}
.outer-cube .top {
  transform: translateY(-100px) rotateX(90deg);
}
.outer-cube .bottom {
  transform: translateY(100px) rotateX(-90deg);
}

内嵌小立方体实现

内嵌的小立方体尺寸是大立方体的一半,位置需要居中放置在大立方体内部,同时颜色要和大立方体做出区分。

.inner-cube {
  width: 50%;
  height: 50%;
  /* 让小立方体居中 */
  top: 25%;
  left: 25%;
  /* 小立方体反向旋转,形成内嵌错落的效果 */
  transform: rotateX(15deg) rotateY(-15deg);
  /* 小立方体不跟随大立方体旋转,单独设置动画 */
  animation: inner-rotate 4s linear infinite reverse;
}

/* 小立方体面的颜色区分 */
.inner-cube .face {
  background: rgba(29, 120, 193, 0.7);
  border-color: #0d4d7a;
}

/* 小立方体各个面的位置变换,尺寸是大立方体的一半,所以Z轴偏移是50px */
.inner-cube .front {
  transform: translateZ(50px);
}
.inner-cube .back {
  transform: translateZ(-50px) rotateY(180deg);
}
.inner-cube .left {
  transform: translateX(-50px) rotateY(-90deg);
}
.inner-cube .right {
  transform: translateX(50px) rotateY(90deg);
}
.inner-cube .top {
  transform: translateY(-50px) rotateX(90deg);
}
.inner-cube .bottom {
  transform: translateY(50px) rotateX(-90deg);
}

动画定义

给大小立方体分别添加旋转动画,让Logo呈现动态效果,符合Webpack Logo的官方展示风格。

@keyframes rotate {
  from {
    transform: rotateX(-15deg) rotateY(0deg);
  }
  to {
    transform: rotateX(-15deg) rotateY(360deg);
  }
}

@keyframes inner-rotate {
  from {
    transform: rotateX(15deg) rotateY(0deg);
  }
  to {
    transform: rotateX(15deg) rotateY(360deg);
  }
}

效果调整与优化

如果觉得3D效果不够明显,可以调整perspective的数值,数值越小3D纵深感越强。如果想要静态展示,可以删除animation相关属性。另外可以通过调整translateZ的数值改变立方体的厚度,让内嵌结构的比例更符合官方Logo的样式。

这种实现方式的优势是完全基于CSS3,不需要加载任何图片资源,性能更好,而且可以通过CSS变量轻松调整颜色、尺寸和动画速度,适配不同的使用场景。

CSS3Webpack_Logo3D_transform内嵌立方体animation修改时间:2026-07-17 17:15:35

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。