当前位置:首页 > CSS

css骰子制作

2026-02-27 03:59:33CSS

使用CSS制作骰子

通过CSS的3D变换和伪元素可以模拟骰子的六个面。以下是一个基础实现方案:

<div class="dice">
  <div class="face front">1</div>
  <div class="face back">6</div>
  <div class="face right">4</div>
  <div class="face left">3</div>
  <div class="face top">2</div>
  <div class="face bottom">5</div>
</div>
.dice {
  width: 100px;
  height: 100px;
  position: relative;
  transform-style: preserve-3d;
  transform: rotateX(45deg) rotateY(45deg);
  animation: spin 5s infinite linear;
}

.face {
  position: absolute;
  width: 100%;
  height: 100%;
  border: 2px solid #000;
  border-radius: 10px;
  background: white;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 24px;
}

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

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

添加圆点样式的骰子

更真实的骰子需要圆点布局:

.dot {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: black;
  position: absolute;
}

/* 示例:1点的中心圆点 */
.face.front .dot {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

/* 示例:6点的三列布局 */
.face.back .dot {
  width: 12px;
  height: 12px;
}
.face.back .dot:nth-child(1) { top: 15%; left: 25%; }
.face.back .dot:nth-child(2) { top: 15%; left: 50%; }
.face.back .dot:nth-child(3) { top: 15%; left: 75%; }
.face.back .dot:nth-child(4) { top: 85%; left: 25%; }
.face.back .dot:nth-child(5) { top: 85%; left: 50%; }
.face.back .dot:nth-child(6) { top: 85%; left: 75%; }

交互式骰子动画

添加点击旋转效果:

document.querySelector('.dice').addEventListener('click', function() {
  const x = Math.floor(Math.random() * 360);
  const y = Math.floor(Math.random() * 360);
  this.style.transform = `rotateX(${x}deg) rotateY(${y}deg)`;
});

响应式尺寸调整

通过CSS变量实现尺寸控制:

:root {
  --dice-size: 100px;
  --dot-size: calc(var(--dice-size) * 0.15);
}

@media (max-width: 600px) {
  :root {
    --dice-size: 60px;
  }
}

高级3D阴影效果

增强立体感的box-shadow:

css骰子制作

.dice {
  box-shadow: 
    5px 5px 10px rgba(0,0,0,0.2),
    inset 2px 2px 5px rgba(255,255,255,0.8);
}

.face {
  box-shadow: 
    inset 0 0 15px rgba(0,0,0,0.1),
    0 0 2px rgba(0,0,0,0.1);
}

这些方法组合可以创建出从简单到复杂的CSS骰子效果,通过调整transform参数可以实现不同的旋转状态展示特定点数。

标签: 骰子css
分享给朋友:

相关文章

css制作教程

css制作教程

CSS 基础概念 CSS(层叠样式表)用于控制网页的视觉表现,包括布局、颜色、字体等。它与HTML结合使用,HTML负责结构,CSS负责样式。 基本语法结构 CSS规则由选择器和声明块组成: 选择…

css制作网站导航

css制作网站导航

使用CSS制作网站导航的方法 水平导航栏 通过display: inline-block或flexbox布局实现水平导航栏。设置背景色、间距和悬停效果增强交互性。 .navbar { backg…

css怎么制作首字下沉

css怎么制作首字下沉

首字下沉的实现方法 首字下沉是一种常见的排版效果,通过放大段落的首字母并使其下沉,可以增强文本的视觉吸引力。以下是几种实现方法: 使用::first-letter伪元素 通过CSS的::first-…

css的制作

css的制作

CSS 的基本概念 CSS(层叠样式表)用于控制网页的样式和布局。通过 CSS 可以定义字体、颜色、间距、背景等视觉效果,使 HTML 结构更美观。 CSS 的引入方式 内联样式:直接在 HTML…

vue实现骰子

vue实现骰子

Vue 实现骰子组件 使用 Vue 实现一个骰子组件可以通过动态渲染不同的骰子面,并添加交互逻辑(如点击旋转)。以下是具体实现方法: 创建骰子组件 定义一个 Vue 单文件组件(SFC),包含骰子的…

css 制作导航

css 制作导航

基础导航栏制作 使用HTML无序列表<ul>和CSS样式创建横向导航栏 <nav> <ul class="navbar"> <li><…