<…">
当前位置:首页 > CSS

css制作日历

2026-03-31 20:29:47CSS

使用CSS制作日历的方法

基础HTML结构

日历的基础HTML结构通常包含一个容器,用于放置日期格子。以下是一个简单的结构示例:

<div class="calendar">
  <div class="header">
    <span class="month">January 2023</span>
  </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 class="empty"></div>
    <div>1</div>
    <div>2</div>
    <!-- 更多日期格子 -->
  </div>
</div>

基础CSS样式

通过CSS设置日历的布局和外观。使用Flexbox或Grid布局可以轻松实现日历的排列。

.calendar {
  width: 300px;
  border: 1px solid #ccc;
  border-radius: 8px;
  overflow: hidden;
  font-family: Arial, sans-serif;
}

.header {
  background-color: #4CAF50;
  color: white;
  padding: 10px;
  text-align: center;
}

.weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  background-color: #f2f2f2;
  padding: 5px 0;
  text-align: center;
}

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

.days div {
  padding: 10px;
  text-align: center;
  border-radius: 4px;
}

.days div:hover {
  background-color: #e0e0e0;
}

.empty {
  visibility: hidden;
}

高级样式调整

可以根据需求进一步调整样式,比如添加当前日期的突出显示或事件标记。

.current-day {
  background-color: #4CAF50;
  color: white;
}

.event {
  background-color: #ff9800;
  color: white;
  position: relative;
}

.event::after {
  content: "";
  position: absolute;
  bottom: 2px;
  left: 50%;
  transform: translateX(-50%);
  width: 4px;
  height: 4px;
  background-color: white;
  border-radius: 50%;
}

响应式设计

通过媒体查询确保日历在不同设备上显示良好。

@media (max-width: 600px) {
  .calendar {
    width: 100%;
  }
}

动态生成日历

结合JavaScript动态生成日历内容,自动填充日期和调整布局。

css制作日历

function generateCalendar(year, month) {
  const daysContainer = document.querySelector('.days');
  daysContainer.innerHTML = '';

  const firstDay = new Date(year, month, 1).getDay();
  const daysInMonth = new Date(year, month + 1, 0).getDate();

  for (let i = 0; i < firstDay; i++) {
    const emptyDiv = document.createElement('div');
    emptyDiv.classList.add('empty');
    daysContainer.appendChild(emptyDiv);
  }

  for (let i = 1; i <= daysInMonth; i++) {
    const dayDiv = document.createElement('div');
    dayDiv.textContent = i;
    if (i === new Date().getDate() && month === new Date().getMonth()) {
      dayDiv.classList.add('current-day');
    }
    daysContainer.appendChild(dayDiv);
  }
}

generateCalendar(2023, 0); // 生成2023年1月的日历

以上方法提供了从基础到高级的日历制作方案,可以根据具体需求进一步扩展功能。

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

相关文章

div css制作导航

div css制作导航

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

css制作图片

css制作图片

CSS 制作图片的方法 使用 background-image 属性 通过 background-image 属性可以为元素设置背景图片。这种方法适用于将图片作为背景而非内容的一部分。 .eleme…

css 制作石头

css 制作石头

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

css制作滑动切换

css制作滑动切换

使用CSS实现滑动切换效果 方法一:使用CSS Transition和Transform 通过transition和transform属性实现平滑的滑动动画效果。 .slider-container…

css图形制作

css图形制作

CSS 图形制作方法 使用 CSS 可以创建各种基本和复杂的图形,主要通过 border、transform、clip-path 等属性实现。以下是几种常见图形的实现方式: 三角形 通过设置元素的…

用css制作下拉菜单

用css制作下拉菜单

使用纯CSS制作下拉菜单 HTML结构 基础的下拉菜单需要嵌套的HTML结构,通常使用<ul>和<li>标签实现层级关系: <div class="dropdown"&…