纯css制作钟表
使用纯CSS制作钟表
HTML结构
创建一个基本的HTML结构,包含钟表的各个部分:表盘、时针、分针和秒针。
<div class="clock">
<div class="clock-face">
<div class="hand hour-hand"></div>
<div class="hand min-hand"></div>
<div class="hand sec-hand"></div>
</div>
</div>
CSS样式
通过CSS实现钟表的外观和动画效果。
表盘样式

.clock {
width: 300px;
height: 300px;
border-radius: 50%;
background-color: #f0f0f0;
position: relative;
margin: 50px auto;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
.clock-face {
width: 100%;
height: 100%;
position: relative;
}
指针样式
.hand {
position: absolute;
bottom: 50%;
left: 50%;
transform-origin: 50% 100%;
background-color: #333;
}
.hour-hand {
width: 6px;
height: 80px;
margin-left: -3px;
}
.min-hand {
width: 4px;
height: 120px;
margin-left: -2px;
}
.sec-hand {
width: 2px;
height: 140px;
margin-left: -1px;
background-color: red;
}
动画效果 使用CSS动画实现指针的旋转。

.clock-face {
animation: rotate 43200s infinite linear;
}
.hour-hand {
animation: rotate 43200s infinite linear;
}
.min-hand {
animation: rotate 3600s infinite linear;
}
.sec-hand {
animation: rotate 60s infinite linear;
}
@keyframes rotate {
100% {
transform: rotate(360deg);
}
}
刻度标记
为表盘添加刻度标记,增强视觉效果。
.clock-face::before {
content: '';
position: absolute;
width: 12px;
height: 12px;
background-color: #333;
border-radius: 50%;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: 10;
}
.clock-face::after {
content: '';
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
border-radius: 50%;
box-sizing: border-box;
border: 2px solid #333;
}
刻度线
.clock-face {
background-image:
linear-gradient(0deg, transparent 50%, #333 50%),
linear-gradient(30deg, transparent 50%, #333 50%),
linear-gradient(60deg, transparent 50%, #333 50%),
linear-gradient(90deg, transparent 50%, #333 50%),
linear-gradient(120deg, transparent 50%, #333 50%),
linear-gradient(150deg, transparent 50%, #333 50%),
linear-gradient(180deg, transparent 50%, #333 50%),
linear-gradient(210deg, transparent 50%, #333 50%),
linear-gradient(240deg, transparent 50%, #333 50%),
linear-gradient(270deg, transparent 50%, #333 50%),
linear-gradient(300deg, transparent 50%, #333 50%),
linear-gradient(330deg, transparent 50%, #333 50%);
background-size: 100% 100%;
}
最终效果
通过以上代码,可以创建一个纯CSS实现的钟表,包含时针、分针和秒针的动画效果,以及表盘的刻度标记。指针会按照实际时间比例旋转,实现动态显示时间。






