纯CSS实现3D效果的立方体

简介: 当使用css属性perspective的时候,需要一个容器并设置perspective depth值,然后让它的子元素在这个容器中做运动

HTML代码结构


当使用css属性perspective的时候,需要一个容器并设置perspective depth值,然后让它的子元素在这个容器中做运动

.container {
  width: 200px;
  height: 200px;
  perspective: 1000px;
  margin: 100px auto 0;
}


设置Perspective值


给perspective设置深度值,这个值表示屏幕到元素所在环境最远距离

.container {
  width: 200px;
  height: 200px;
  perspective: 1000px;
  margin: 100px auto 0;
}

给立方体设置3D属性

.cube {
  transform-style: preserve-3d;
  width: 100%;
  height: 100%;
  position: relative;
}

给立方体的每个面设置绝对定位,长宽100%,然后设置背景为网格状。

.face {
  position: absolute;
  width: 100%;
  height: 100%;
  background-image: repeating-linear-gradient(0deg, rgba(70,70,70, 0.2) 0px, rgba(70,70,70, 0.2) 1px,transparent 1px, transparent 21px),repeating-linear-gradient(90deg, rgba(70,70,70, 0.2) 0px, rgba(70,70,70, 0.2) 1px,transparent 1px, transparent 21px),linear-gradient(90deg, rgb(255,255,255),rgb(255,255,255));
}

对立方体的六个面进行Z轴的变换并且旋转,使它形成立方体的六个面

.top {
  transform: rotateX(90deg) translateZ(100px);
}
.bottom {
  transform: rotateX(-90deg) translateZ(100px);
}
.right {
  transform: rotateY(90deg) translateZ(100px);
}
.left {
  transform: rotateY(-90deg) translateZ(100px);
}
.front {
  transform: rotateX(0deg) translateZ(100px);
}
.back {
  transform: rotateX(-180deg) translateZ(100px);
}

剩下最后一步就是让这个立方体旋转起来,设置无线循环的animation动画

@keyframes spin {
  from {
    transform: rotateX(0deg) rotateY(0deg);
  }
  to {
    transform: rotateX(360deg) rotateY(360deg);
  }
}
.cube {
  transform-style: preserve-3d;
  width: 100%;
  height: 100%;
  position: relative;
  animation: spin 5s infinite linear;
}

实现效果如下


image.png

目录
相关文章
|
5月前
CSS3自动旋转正方体3D特效
CSS3自动旋转正方体3D特效
45 3
CSS3自动旋转正方体3D特效
|
2月前
|
前端开发
HTML+CSS动画实现动感3D卡片墙:现代Web设计的视觉盛宴
HTML+CSS动画实现动感3D卡片墙:现代Web设计的视觉盛宴
|
4月前
|
前端开发 JavaScript UED
CSS进阶-3D变换与透视效果
【6月更文挑战第15天】CSS3的3D变换和透视效果增强了网页的深度感。通过`rotateX/Y/Z`旋转和`translateZ`移动,结合`perspective`属性可创建3D空间。`perspective`定义观察者与Z轴的距离,影响元素的缩放感。常见问题包括过度失真和元素遮挡顺序,可通过调整`perspective`值和使用`z-index`解决。进阶技巧涉及层叠上下文理解和3D卡片翻转效果,通过实践与探索,设计师能更好地利用这些工具创新用户体验。
76 6
|
3月前
|
前端开发 JavaScript
【HTML+CSS+JavaScript】3d-boxes-background
【HTML+CSS+JavaScript】3d-boxes-background
30 0
|
3月前
|
前端开发 JavaScript
前端 CSS 经典:3D Hover Effect 效果
前端 CSS 经典:3D Hover Effect 效果
42 0
|
3月前
|
前端开发 JavaScript
前端 CSS 经典:3D 渐变轮播图
前端 CSS 经典:3D 渐变轮播图
70 0
|
5月前
|
前端开发
纯css实现的3D立体鸡蛋动画视觉效果
纯css实现的3D立体鸡蛋动画视觉效果
59 6
纯css实现的3D立体鸡蛋动画视觉效果
|
5月前
使用html+css制作一个发光立方体特效
使用html+css制作一个发光立方体特效
45 2
使用html+css制作一个发光立方体特效
|
前端开发 测试技术 容器
【CSS】如何给自己头像打造3D动态悬浮效果?(慎入!有点难)
有设想过,当你鼠标移入头像时,展现出从圆圈或洞中探出的那种效果吗?我有类似的想法,但采用了不同的方式并添加了一些动画。我感觉非常实用,并且可以产生简洁的悬停效果,可以在您自己的头像之类的东西上使用。
【CSS】如何给自己头像打造3D动态悬浮效果?(慎入!有点难)
|
5月前
|
UED
css3 2D与3D转换
css3 2D与3D转换
62 0