当前位置:首页 > CSS

纯css制作时钟

2026-04-02 12:02:14CSS

纯CSS制作时钟

使用纯CSS制作时钟需要结合HTML结构和CSS动画技术,通过transformanimation属性模拟时钟指针的旋转效果。以下是实现方法:

HTML结构

创建一个基础的HTML结构,包含时钟的表盘和三个指针(时、分、秒):

纯css制作时钟

<div class="clock">
  <div class="hour-hand"></div>
  <div class="minute-hand"></div>
  <div class="second-hand"></div>
</div>

CSS样式

通过CSS定义时钟的外观和动画效果:

纯css制作时钟

.clock {
  width: 200px;
  height: 200px;
  border: 10px solid #333;
  border-radius: 50%;
  position: relative;
  margin: 50px auto;
  background: #fff;
}

.hour-hand, .minute-hand, .second-hand {
  position: absolute;
  left: 50%;
  bottom: 50%;
  transform-origin: 50% 100%;
}

.hour-hand {
  width: 6px;
  height: 50px;
  background: #000;
  animation: rotate-hour 43200s linear infinite;
}

.minute-hand {
  width: 4px;
  height: 70px;
  background: #555;
  animation: rotate-minute 3600s linear infinite;
}

.second-hand {
  width: 2px;
  height: 90px;
  background: #f00;
  animation: rotate-second 60s linear infinite;
}

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

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

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

指针初始位置调整

为了使时钟显示当前时间,需通过transform设置初始角度。例如:

.hour-hand {
  transform: rotate(90deg); /* 初始指向3点 */
}
.minute-hand {
  transform: rotate(180deg); /* 初始指向6点 */
}
.second-hand {
  transform: rotate(270deg); /* 初始指向9点 */
}

刻度标记

添加刻度标记以增强真实感:

<div class="clock">
  <!-- 指针 -->
  <div class="hour-hand"></div>
  <div class="minute-hand"></div>
  <div class="second-hand"></div>
  <!-- 刻度 -->
  <div class="mark mark-12"></div>
  <div class="mark mark-3"></div>
  <div class="mark mark-6"></div>
  <div class="mark mark-9"></div>
</div>
.mark {
  position: absolute;
  width: 4px;
  height: 15px;
  background: #333;
}

.mark-12 { top: 10px; left: 50%; transform: translateX(-50%); }
.mark-3 { top: 50%; right: 10px; transform: translateY(-50%); }
.mark-6 { bottom: 10px; left: 50%; transform: translateX(-50%); }
.mark-9 { top: 50%; left: 10px; transform: translateY(-50%); }

优化细节

  • 使用box-shadow添加表盘立体感:
    .clock {
      box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
    }
  • 添加中心轴点:
    .clock::after {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      width: 12px;
      height: 12px;
      background: #333;
      border-radius: 50%;
      transform: translate(-50%, -50%);
      z-index: 10;
    }

注意事项

  • 纯CSS时钟无法动态同步真实时间,仅依赖动画周期模拟。
  • 如需精确时间,需配合JavaScript动态计算角度并更新transform属性。

标签: 时钟css
分享给朋友:

相关文章

css制作靶子

css制作靶子

CSS 制作靶子 使用 CSS 可以轻松创建一个靶子效果,主要通过嵌套的圆形元素和背景色实现。以下是实现方法: HTML 结构 <div class="target"> <d…

网页制作 css

网页制作 css

CSS 基础语法 CSS(层叠样式表)用于控制网页的样式和布局。基本语法由选择器和声明块组成。选择器指向需要样式化的HTML元素,声明块包含一个或多个用分号分隔的声明,每个声明由属性和值组成。 选择…

css按钮制作

css按钮制作

CSS按钮制作方法 基础按钮样式 创建一个简单的CSS按钮需要定义基本属性,如背景色、边框、内边距和文字样式。示例代码: .btn { background-color: #4CAF50;…

css制作标尺

css制作标尺

使用 CSS 制作标尺的方法 方法一:使用线性渐变和伪元素 通过 linear-gradient 和伪元素实现刻度线,适合简单的水平或垂直标尺。 .ruler { position: rela…

表格制作css

表格制作css

CSS表格样式设计 基础表格样式 通过border-collapse合并边框,使表格更整洁。width控制整体宽度,text-align设置文字对齐方式。 table { border-coll…

css制作扇形

css制作扇形

使用 CSS 制作扇形的方法 通过 CSS 的 border-radius 和 transform 属性可以轻松实现扇形效果。以下是几种常见的实现方式: 方法一:使用 border-radius 和…