当前位置:首页 > 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); }
}

添加圆点样式的骰子

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

css骰子制作

.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%; }

交互式骰子动画

添加点击旋转效果:

css骰子制作

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:

.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制作tab菜单

纯css制作tab菜单

纯CSS制作Tab菜单的方法 使用radio input控制切换 通过<input type="radio">和<label>元素配合实现无JavaScript的Tab切换效果…

用css制作下拉菜单

用css制作下拉菜单

使用纯CSS制作下拉菜单 HTML结构 基础的下拉菜单需要嵌套的HTML结构,通常使用<ul>和<li>标签实现层级关系: <div class="dropdown"&…

使用css制作同心圆

使用css制作同心圆

使用 CSS 制作同心圆 同心圆可以通过嵌套多个圆形元素并利用 CSS 的定位和样式属性实现。以下是几种常见方法: 方法一:使用绝对定位和多个 div 通过嵌套多个 div 元素,设置相同的圆心位置…

css网站制作

css网站制作

CSS网站制作基础 选择适合的CSS框架或预处理器(如Bootstrap、Tailwind CSS、Sass/Less)能加速开发。现代CSS支持Flexbox和Grid布局,需掌握响应式设计原则。…

vue实现骰子

vue实现骰子

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

css 制作按钮

css 制作按钮

基础按钮样式 使用CSS创建一个基础按钮需要定义display、padding、background-color和border等属性。以下是一个简单示例: .button { display:…