当前位置:首页 > CSS

css制作全日历

2026-03-12 03:31:13CSS

使用CSS制作全日历

全日历通常需要结合HTML、CSS和JavaScript来实现交互功能,但CSS部分主要负责布局和样式。以下是实现全日历的CSS关键步骤:

基础HTML结构

HTML部分需要包含日历的容器、标题、星期几的表头以及日期格子:

<div class="calendar">
  <div class="header">
    <button class="prev">←</button>
    <h2 class="month-year">June 2023</h2>
    <button class="next">→</button>
  </div>
  <div class="weekdays">
    <div>Sun</div>
    <div>Mon</div>
    <div>Tue</div>
    <div>Wed</div>
    <div>Thu</div>
    <div>Fri</div>
    <div>Sat</div>
  </div>
  <div class="days"></div>
</div>

核心CSS样式

日历容器布局

.calendar {
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
  font-family: Arial, sans-serif;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  border-radius: 8px;
  overflow: hidden;
}

头部样式(月份导航)

css制作全日历

.header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px;
  background-color: #4285f4;
  color: white;
}

.header button {
  background: none;
  border: none;
  color: white;
  font-size: 18px;
  cursor: pointer;
}

星期标题栏

.weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  background-color: #f1f1f1;
  padding: 10px 0;
  text-align: center;
  font-weight: bold;
}

日期格子布局

.days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 5px;
  padding: 10px;
}

.days div {
  min-height: 80px;
  padding: 5px;
  border: 1px solid #e0e0e0;
  position: relative;
}

其他日期状态样式

css制作全日历

/* 非当前月份的日期 */
.days .other-month {
  color: #ccc;
  background-color: #f9f9f9;
}

/* 当前日期高亮 */
.days .today {
  background-color: #e3f2fd;
  font-weight: bold;
}

/* 事件标记样式 */
.event-marker {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #ff7043;
  margin-right: 2px;
}

响应式设计

添加媒体查询适配移动端:

@media (max-width: 600px) {
  .days div {
    min-height: 60px;
    font-size: 14px;
  }

  .weekdays div {
    font-size: 12px;
  }
}

进阶样式技巧

斑马条纹效果

.days div:nth-child(14n + 8),
.days div:nth-child(14n + 9),
.days div:nth-child(14n + 10),
.days div:nth-child(14n + 11),
.days div:nth-child(14n + 12),
.days div:nth-child(14n + 13),
.days div:nth-child(14n + 14) {
  background-color: #fafafa;
}

悬停效果

.days div:not(.other-month):hover {
  background-color: #e8f0fe;
  cursor: pointer;
}

完整实现说明

  1. 日期填充需要通过JavaScript动态生成
  2. 事件管理需要结合后端或本地存储
  3. 完整的日历库推荐使用FullCalendar等专业工具

以上CSS提供了基础日历的视觉框架,交互功能需要配合JavaScript实现日期切换、事件添加等操作。

标签: 日历css
分享给朋友:

相关文章

css如何制作圆

css如何制作圆

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

css菜单制作

css菜单制作

基础水平菜单制作 使用无序列表<ul>和<li>标签构建结构,CSS设置横向排列: <ul class="horizontal-menu"> <li&g…

css精灵图制作

css精灵图制作

CSS 精灵图制作方法 准备工具 图像编辑软件(如 Photoshop、GIMP 或在线工具) CSS 代码编辑器 步骤 收集图像资源 将需要合并的小图标或图片整理到一个文件夹中,确保这些图片尺寸…

vue制作css

vue制作css

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

css 制作石头

css 制作石头

使用CSS制作石头效果 通过CSS的border-radius、box-shadow和background属性可以模拟石头的自然外观。以下是一个简单实现: <div class="stone"…

css制作滑动页面

css制作滑动页面

使用CSS实现滑动页面 通过CSS可以实现多种滑动页面效果,包括横向滑动、纵向滑动以及视差滚动等。以下是几种常见的实现方法: 横向滑动效果 横向滑动通常用于展示一组卡片或图片,可以通过CSS的ove…