当前位置:首页 > 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: blu…

友情链接css制作

友情链接css制作

友情链接CSS制作 友情链接是网站之间互相推广的一种方式,通常以文字或图片形式展示。通过CSS可以美化友情链接的样式,使其更符合网站整体设计风格。 文字链接样式 设置文字链接的基础样式,包括颜色、…

css 制作导航

css 制作导航

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

css制作菜单

css制作菜单

CSS 制作菜单的方法 使用 CSS 可以制作多种风格的菜单,包括水平菜单、垂直菜单、下拉菜单等。以下是几种常见的实现方式。 水平菜单 水平菜单通常用于导航栏,可以通过 display: inlin…

css制作登录界面

css制作登录界面

使用CSS制作登录界面 登录界面是网站常见的功能模块,通过CSS可以轻松实现美观且响应式的设计。以下是实现登录界面的关键步骤和代码示例。 HTML结构 基础的HTML结构包含表单、输入框和按钮等元素…

css简历制作

css简历制作

使用CSS制作简历的基本步骤 选择简洁的布局结构,通常采用单列或双列设计。单列适合内容较少的简历,双列能更好利用空间展示技能和工作经历。布局时注意留白,避免信息过于拥挤。 定义合适的字体和颜色方案。…