当前位置:首页 > CSS

用css制作时间

2026-03-12 09:09:38CSS

使用CSS制作时钟

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

HTML结构

用css制作时间

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

.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 {
  width: 12px;
  height: 12px;
  background: #333;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

JavaScript动态效果

用css制作时间

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

  const hourDeg = (hours * 30) + (minutes * 0.5);
  const minuteDeg = minutes * 6;
  const secondDeg = seconds * 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();

纯CSS动画时钟

如果希望不使用JavaScript,可以使用CSS动画创建简化版时钟:

.clock {
  /* 基础样式同上 */
}

.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: 100%;
  height: 100%;
  border-radius: 50%;
  transform: rotate(30deg);
}

/* 添加12个刻度点 */
.clock::before,
.clock::after {
  background: 
    linear-gradient(0deg, transparent 45%, #333 45%, #333 55%, transparent 55%),
    linear-gradient(30deg, transparent 45%, #333 45%, #333 55%, transparent 55%),
    linear-gradient(60deg, transparent 45%, #333 45%, #333 55%, transparent 55%),
    linear-gradient(90deg, transparent 45%, #333 45%, #333 55%, transparent 55%),
    linear-gradient(120deg, transparent 45%, #333 45%, #333 55%, transparent 55%),
    linear-gradient(150deg, transparent 45%, #333 45%, #333 55%, transparent 55%);
}

这些方法可以创建出不同风格的CSS时钟效果,根据需求选择适合的实现方式。

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

相关文章

css网页制作

css网页制作

CSS网页制作基础 CSS(层叠样式表)用于控制网页的视觉表现,包括布局、颜色、字体等。以下是核心知识点: 选择器与样式规则 /* 标签选择器 */ p { color: #333; fo…

css如何制作圆

css如何制作圆

使用 border-radius 属性制作圆 通过设置 border-radius 属性为元素添加圆角效果。当 border-radius 的值等于元素宽度和高度的一半时,元素会呈现圆形。 .cir…

css制作箭头

css制作箭头

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

div css制作导航

div css制作导航

使用div和CSS制作导航栏 导航栏是网站的重要组成部分,用于帮助用户快速找到所需内容。以下是使用div和CSS制作导航栏的方法: HTML结构 创建一个基本的导航栏HTML结构,使用div和ul元…

css制作图标

css制作图标

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

css 导航栏制作

css 导航栏制作

水平导航栏制作 使用无序列表<ul>和<li>标签构建基础结构,通过CSS将列表项横向排列 <nav> <ul class="horizontal-na…