当前位置:首页 > CSS

css怎么制作钟

2026-03-11 19:24:11CSS

使用CSS制作钟表

通过CSS和少量JavaScript可以创建一个动态的钟表。以下是实现方法:

css怎么制作钟

HTML结构

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

CSS样式

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

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

.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 {
  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 hour = now.getHours() % 12;
  const minute = now.getMinutes();
  const second = now.getSeconds();

  const hourDeg = (hour * 30) + (minute * 0.5);
  const minuteDeg = minute * 6;
  const secondDeg = second * 6;

  document.querySelector('.hour-hand').style.transform = `rotate(${hourDeg}deg)`;
  document.querySelector('.minute-hand').style.transform = `rotate(${minuteDeg}deg)`;
  document.querySelector('.second-hand').style.transform = `rotate(${secondDeg}deg)`;
}

setInterval(updateClock, 1000);
updateClock();

添加钟表刻度

要增加刻度标记,可以在HTML中添加元素:

css怎么制作钟

<div class="clock">
  <!-- 原有指针元素 -->
  <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>

CSS样式:

.mark {
  position: absolute;
  width: 4px;
  height: 15px;
  background: #333;
  left: 50%;
  margin-left: -2px;
}

.mark-12 { top: 10px; transform: rotate(0deg); }
.mark-3 { 
  top: 50%;
  right: 10px;
  left: auto;
  margin-top: -7.5px;
  transform: rotate(90deg);
}
.mark-6 { bottom: 10px; transform: rotate(180deg); }
.mark-9 { 
  top: 50%;
  left: 10px;
  margin-top: -7.5px;
  transform: rotate(270deg);
}

纯CSS钟表(无JavaScript)

创建静态钟表只需固定指针角度:

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

这种方法适合不需要动态更新的装饰性钟表。要实现动态效果,必须使用JavaScript定时更新指针角度。

标签: css
分享给朋友:

相关文章

css页脚制作

css页脚制作

CSS页脚制作方法 固定定位页脚 使用position: fixed将页脚固定在页面底部,适用于需要始终显示的页脚。 footer { position: fixed; bottom: 0;…

css制作详情页

css制作详情页

CSS制作详情页的关键步骤 布局规划 确定详情页的整体布局结构,通常包括头部、商品展示区、参数区、评价区等模块。使用Flexbox或Grid布局实现响应式设计,确保在不同设备上正常显示。 样式设计…

css制作goole

css制作goole

使用CSS制作Google标志 Google标志由多彩的字母和简洁的字体组成,可以通过CSS的字体属性、颜色渐变和布局来实现。 字体选择 Google标志使用自定义字体"Product Sans",…

制作css表格

制作css表格

基础CSS表格结构 使用HTML的<table>标签创建表格骨架,搭配CSS控制样式。以下是一个基础示例: <table class="styled-table"> &l…

css日历制作

css日历制作

基础日历结构 使用HTML创建日历的基本框架,通常包含表格元素。月份、星期几和日期通过<table>标签组织,表头显示星期几,表格主体填充日期数字。 <div class="cal…

制作css开关

制作css开关

使用纯CSS创建开关 HTML结构需要包含一个隐藏的复选框和一个关联的标签元素: <label class="switch"> <input type="checkbox"&g…