当前位置:首页 > CSS

纯css制作钟表

2026-03-11 23:51:01CSS

纯css制作钟表

纯CSS制作钟表

使用纯CSS制作钟表主要依赖于CSS的transformanimation属性,结合伪元素(::before::after)实现表盘、时针、分针和秒针的效果。以下是实现方法:

纯css制作钟表

HTML结构

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

CSS样式

.clock {
  width: 200px;
  height: 200px;
  border: 10px solid #333;
  border-radius: 50%;
  position: relative;
  margin: 50px auto;
  background: #fff;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

.hour-hand {
  width: 6px;
  height: 50px;
  background: #333;
  position: absolute;
  top: 50%;
  left: 50%;
  transform-origin: bottom center;
  transform: translate(-50%, -100%) rotate(30deg);
  animation: rotate-hour 43200s linear infinite;
}

.minute-hand {
  width: 4px;
  height: 80px;
  background: #666;
  position: absolute;
  top: 50%;
  left: 50%;
  transform-origin: bottom center;
  transform: translate(-50%, -100%) rotate(90deg);
  animation: rotate-minute 3600s linear infinite;
}

.second-hand {
  width: 2px;
  height: 90px;
  background: #f00;
  position: absolute;
  top: 50%;
  left: 50%;
  transform-origin: bottom center;
  transform: translate(-50%, -100%) rotate(180deg);
  animation: rotate-second 60s linear infinite;
}

.center-dot {
  width: 12px;
  height: 12px;
  background: #333;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

@keyframes rotate-hour {
  from { transform: translate(-50%, -100%) rotate(0deg); }
  to { transform: translate(-50%, -100%) rotate(360deg); }
}

@keyframes rotate-minute {
  from { transform: translate(-50%, -100%) rotate(0deg); }
  to { transform: translate(-50%, -100%) rotate(360deg); }
}

@keyframes rotate-second {
  from { transform: translate(-50%, -100%) rotate(0deg); }
  to { transform: translate(-50%, -100%) rotate(360deg); }
}

实现原理

  1. 表盘:通过border-radius: 50%div变为圆形,边框模拟表盘外框。
  2. 指针:使用绝对定位的div模拟时针、分针和秒针,通过transform-origin设置旋转中心为底部。
  3. 动画:利用@keyframes定义旋转动画,时针周期为12小时(43200秒),分针为1小时(3600秒),秒针为60秒。
  4. 中心点:通过小圆点模拟钟表中心。

刻度标记(可选)

若需添加刻度,可通过伪元素实现:

.clock::before {
  content: "";
  position: absolute;
  width: 4px;
  height: 15px;
  background: #333;
  top: 10px;
  left: 50%;
  transform: translateX(-50%);
}

/* 其他刻度类似,通过rotate调整角度 */

通过调整CSS变量(如颜色、尺寸)和动画时间,可自定义钟表样式。此方法无需JavaScript,完全依赖CSS动画实现动态效果。

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

相关文章

css样式制作

css样式制作

CSS 样式制作基础 CSS(层叠样式表)用于控制网页的视觉呈现。通过选择器和属性组合,可以精确调整元素的布局、颜色、字体等样式。 选择器类型 元素选择器:p { color: red; } 选中…

css制作表单

css制作表单

使用CSS制作表单的基本方法 创建一个美观且功能完善的表单需要结合HTML结构和CSS样式。以下是关键步骤和示例代码: HTML基础结构 <form class="my-form"&…

css怎么制作表格

css怎么制作表格

使用HTML和CSS创建表格 HTML提供<table>标签用于创建表格结构,结合CSS可以自定义样式。以下是基本实现方法: HTML结构 <table> <th…

css图标制作

css图标制作

CSS 图标制作方法 使用 Unicode 或图标字体 通过引入字体库(如 Font Awesome)或直接使用 Unicode 符号生成图标。例如,Font Awesome 的图标可通过类名调用:…

css制作炫酷按钮

css制作炫酷按钮

渐变背景按钮 使用CSS的linear-gradient属性创建渐变背景效果,结合阴影和过渡动画增强视觉冲击力。按钮悬停时通过改变渐变角度或颜色实现动态效果。 .gradient-btn { b…

css制作雪花

css制作雪花

CSS 制作雪花效果 使用纯CSS可以创建简单的雪花动画效果,主要通过伪元素、动画和变换实现。 基础雪花结构 <div class="snowflake"></div> 六…