当前位置:首页 > CSS

css制作时钟

2026-01-13 12:22:11CSS

CSS 制作时钟的方法

使用纯CSS和少量JavaScript可以创建一个动态的时钟。以下是实现步骤:

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

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

.hour-hand {
  width: 6px;
  height: 60px;
  background: #333;
  margin-left: -3px;
}

.minute-hand {
  width: 4px;
  height: 80px;
  background: #666;
  margin-left: -2px;
}

.second-hand {
  width: 2px;
  height: 90px;
  background: red;
  margin-left: -1px;
}

.center-dot {
  width: 12px;
  height: 12px;
  background: #333;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  margin: -6px 0 0 -6px;
}

JavaScript动态效果

function updateClock() {
  const now = new Date();
  const hours = now.getHours() % 12;
  const minutes = now.getMinutes();
  const seconds = now.getSeconds();

  const hourDegrees = (hours * 30) + (minutes * 0.5);
  const minuteDegrees = minutes * 6;
  const secondDegrees = seconds * 6;

  document.querySelector('.hour-hand').style.transform = `rotate(${hourDegrees}deg)`;
  document.querySelector('.minute-hand').style.transform = `rotate(${minuteDegrees}deg)`;
  document.querySelector('.second-hand').style.transform = `rotate(${secondDegrees}deg)`;
}

setInterval(updateClock, 1000);
updateClock();

纯CSS时钟(无JavaScript)

使用CSS动画也可以创建时钟,但需要预先定义所有可能的位置:

css制作时钟

.second-hand {
  animation: rotate 60s linear infinite;
}

.minute-hand {
  animation: rotate 3600s linear infinite;
}

.hour-hand {
  animation: rotate 43200s linear infinite;
}

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

添加时钟刻度

.clock::before {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
}

.clock::after {
  content: '';
  position: absolute;
  width: 90%;
  height: 90%;
  top: 5%;
  left: 5%;
  border-radius: 50%;
  background: #fff;
}

/* 添加12个刻度 */
.clock .tick {
  position: absolute;
  width: 2px;
  height: 10px;
  background: #333;
  left: 50%;
  top: 0;
  margin-left: -1px;
  transform-origin: bottom center;
}

/* 创建12个刻度元素 */
<div class="clock">
  <!-- 之前的指针元素 -->
  <div class="tick" style="transform: rotate(0deg)"></div>
  <div class="tick" style="transform: rotate(30deg)"></div>
  <!-- 继续添加其他刻度... -->
</div>

这些方法可以创建一个功能完整的CSS时钟,第一种方法使用JavaScript实现实时更新,第二种方法使用纯CSS动画但时间不会与实际时间同步。可以根据需求选择适合的实现方式。

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

相关文章

css制作彩虹

css制作彩虹

使用线性渐变创建彩虹效果 通过CSS的linear-gradient属性可以轻松实现彩虹效果。以下是一个基础的彩虹样式代码: .rainbow { width: 100%; height:…

咖啡店css制作

咖啡店css制作

咖啡店网页CSS设计要点 布局与配色 咖啡店网页通常采用温暖自然的配色方案,如棕色、米色、浅绿色等大地色系。主色调可选择咖啡色(#6F4E37)作为品牌色,搭配奶油色(#FFF8E8)作为背景。使用C…

css制作流程图

css制作流程图

使用CSS制作流程图的方法 基础布局结构 采用HTML的<div>元素构建流程节点,结合CSS的flexbox或grid布局实现整体排列。节点间用伪元素或独立元素(如<span>…

css制作便签

css制作便签

CSS制作便签的方法 使用CSS可以轻松创建具有便签效果的样式,以下是一种常见的实现方式: HTML结构 <div class="note"> <h3>便签标题<…

css的制作

css的制作

CSS 的基本概念 CSS(层叠样式表)用于控制网页的样式和布局。通过 CSS 可以定义字体、颜色、间距、背景等视觉效果,使 HTML 结构更美观。 CSS 的引入方式 内联样式:直接在 HTML…

css如何制作圆

css如何制作圆

使用 border-radius 属性 通过设置 border-radius 属性可以轻松创建圆角或圆形元素。值为 50% 时,元素会呈现为圆形。 .circle { width: 100p…