当前位置:首页 > CSS

纯css制作钟表

2026-02-13 11:02:10CSS

使用纯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;
}

刻度线

纯css制作钟表

.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实现的钟表,包含时针、分针和秒针的动画效果,以及表盘的刻度标记。指针会按照实际时间比例旋转,实现动态显示时间。

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

相关文章

css制作三角形

css制作三角形

使用 border 属性创建三角形 通过设置元素的 border 属性可以实现三角形效果。原理是利用边框的交界处形成的斜边。 .triangle { width: 0; height: 0;…

css制作图标

css制作图标

使用CSS制作图标的方法 使用伪元素和边框 通过CSS的::before和::after伪元素结合border属性可以创建简单的几何形状图标。例如制作一个三角形: .triangle { w…

vue制作css

vue制作css

在Vue中制作CSS的方法 Vue提供了多种灵活的方式来编写和管理CSS,可以根据项目需求选择适合的方法。 使用内联样式 内联样式可以直接在Vue组件的模板中编写,适用于简单的样式需求。 <…

css制作春联

css制作春联

使用CSS制作春联的方法 基础布局与样式 春联通常由一对垂直排列的红色对联和顶部的横批组成。使用CSS的flexbox布局可以轻松实现这种结构。创建一个父容器,内部包含三个子元素:横批、上联和下联。…

css制作三角形

css制作三角形

使用边框制作三角形 通过设置元素的宽度和高度为0,并利用边框属性,可以创建不同方向的三角形。例如,要创建一个向下的三角形: .triangle-down { width: 0; height…

css制作箭头

css制作箭头

使用边框制作箭头 通过设置元素的 border 属性,利用透明边框和实色边框的组合生成箭头。例如,创建一个向右的箭头: .arrow-right { width: 0; height:…