当前位置:首页 > 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制作简历的基本方法 选择简洁的布局结构,单列或双列布局适合大多数简历。使用display: flex或display: grid实现响应式设计,确保在不同设备上显示良好。 字体选择上,标题…

min.css制作

min.css制作

使用 min.css 制作轻量级样式 min.css 是一个极简的 CSS 框架,专注于轻量化和快速加载。以下是如何使用 min.css 进行开发的步骤。 引入 min.css 通过 CDN 直接引…

css制作网站导航

css制作网站导航

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

css 制作箭头

css 制作箭头

使用 CSS 边框制作箭头 通过调整元素的边框宽度和颜色,利用透明边框的特性可以创建箭头效果。例如,制作一个向右的箭头: .arrow-right { width: 0; height: 0…

css制作教程

css制作教程

CSS基础入门 CSS(层叠样式表)用于控制网页的视觉表现,包括布局、颜色、字体等。以下是一个系统化的学习路径: 选择器与基本语法 CSS规则由选择器和声明块组成: 选择器 { 属性: 值;…

css样式制作

css样式制作

CSS样式制作基础 CSS(层叠样式表)用于控制网页的视觉呈现。通过CSS可以定义字体、颜色、布局等样式。 选择器与属性 /* 标签选择器 */ p { color: blue; font…