返回

使用 HTML、CSS 和 JavaScript 构建前端日历

前端

今天,我们将使用HTML、CSS和JavaScript构建一个前端日历。

我们从一个基本结构开始,为我们的日历创建一个包含网格的容器。然后,我们使用JavaScript动态填充网格,创建一个交互式日历,用户可以在其中查看和管理事件。

首先,我们创建基本结构。我们的日历将由一个容器组成,该容器包含一个表格,该表格又包含用于显示日、周和月的行和列。

<div class="calendar-container">
  <table>
    <thead>
      <tr>
        <th></th>
        <th></th>
        <th></th>
        <th></th>
        <th></th>
        <th></th>
        <th></th>
      </tr>
    </thead>
    <tbody>
      <!-- 日历正文 -->
    </tbody>
  </table>
</div>

接下来,我们使用JavaScript填充网格。首先,我们创建一个包含月份中所有日期的数组。然后,我们遍历数组,为每个日期创建单元格并将其添加到日历表中。

// 创建日期数组
const dates = [];
const startDate = new Date(); // 当月第一天
const endDate = new Date(startDate.getFullYear(), startDate.getMonth() + 1, 0); // 当月最后一天

for (let i = startDate; i <= endDate; i.setDate(i.getDate() + 1)) {
  dates.push(new Date(i));
}

// 填充网格
dates.forEach((date) => {
  // 创建单元格
  const cell = document.createElement('td');
  cell.textContent = date.getDate();

  // 添加事件监听器
  cell.addEventListener('click', () => {
    // 处理单击事件
  });

  // 将单元格添加到日历表中
  document.querySelector('tbody').appendChild(cell);
});

最后,我们添加一些样式来使我们的日历更具吸引力。我们使用CSS来设置日历的布局、字体和颜色。

.calendar-container {
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
}

table {
  width: 100%;
  border-collapse: collapse;
}

th, td {
  width: 14.28%;
  padding: 10px;
  text-align: center;
}

th {
  background-color: #f2f2f2;
}

td {
  border: 1px solid #ddd;
}

td:hover {
  background-color: #efefef;
}

这只是一个基本前端日历的示例。您可以根据需要自定义和扩展此示例以创建满足您特定需求的日历。