在这篇文章中,我将向大家展示如何使用HTML和CSS创建一个简单的日历界面。这个日历界面可以显示两个连续的月份,并高亮显示今天的日期。
步骤一:创建HTML结构
首先,我们需要创建一个基本的HTML结构。我们将使用<div>
元素来创建日历的容器,并使用<div>
元素来表示每个月的日历。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>日历界面</title>
<style>
.calendar-container {
display: flex;
justify-content: center;
align-items: center;
margin: 20px;
}
.calendar {
border: 1px solid #ccc;
margin: 10px;
padding: 10px;
}
.calendar-header {
text-align: center;
font-size: 20px;
margin-bottom: 10px;
}
.calendar-grid {
display: grid;
grid-template-columns: repeat(7, 1fr);
gap: 5px;
}
.calendar-cell {
width: 40px;
height: 40px;
display: flex;
justify-content: center;
align-items: center;
border: 1px solid #ccc;
}
.today {
background-color: #00f;
color: #fff;
border-radius: 50%;
}
</style>
</head>
<body>
<div class="calendar-container">
<div class="calendar">
<div class="calendar-header">2024年7月</div>
<div class="calendar-grid">
<div class="calendar-cell">日</div>
<div class="calendar-cell">一</div>
<div class="calendar-cell">二</div>
<div class="calendar-cell">三</div>
<div class="calendar-cell">四</div>
<div class="calendar-cell">五</div>
<div class="calendar-cell">六</div>
<!-- 这里填充7月的日期 -->
<div class="calendar-cell">30</div>
<div class="calendar-cell">1</div>
<div class="calendar-cell">2</div>
<div class="calendar-cell">3</div>
<div class="calendar-cell">4</div>
<div class="calendar-cell">5</div>
<div class="calendar-cell">6</div>
<div class="calendar-cell">7</div>
<div class="calendar-cell">8</div>
<div class="calendar-cell">9</div>
<div class="calendar-cell">10</div>
<div class="calendar-cell">11</div>
<div class="calendar-cell">12</div>
<div class="calendar-cell">13</div>
<div class="calendar-cell">14</div>
<div class="calendar-cell">15</div>
<div class="calendar-cell">16</div>
<div class="calendar-cell">17</div>
<div class="calendar-cell">18</div>
<div class="calendar-cell">19</div>
<div class="calendar-cell">20</div>
<div class="calendar-cell">21</div>
<div class="calendar-cell">22</div>
<div class="calendar-cell">23</div>
<div class="calendar-cell">24</div>
<div class="calendar-cell">25</div>
<div class="calendar-cell">26</div>
<div class="calendar-cell">27</div>
<div class="calendar-cell">28</div>
<div class="calendar-cell">29</div>
<div class="calendar-cell">30</div>
<div class="calendar-cell">31</div>
</div>
</div>
<div class="calendar">
<div class="calendar-header">2024年8月</div>
<div class="calendar-grid">
<div class="calendar-cell">日</div>
<div class="calendar-cell">一</div>
<div class="calendar-cell">二</div>
<div class="calendar-cell">三</div>
<div class="calendar-cell">四</div>
<div class="calendar-cell">五</div>
<div class="calendar-cell">六</div>
<!-- 这里填充8月的日期 -->
<div class="calendar-cell">1</div>
<div class="calendar-cell">2</div>
<div class="calendar-cell">3</div>
<div class="calendar-cell">4</div>
<div class="calendar-cell">5</div>
<div class="calendar-cell">6</div>
<div class="calendar-cell">7</div>
<div class="calendar-cell">8</div>
<div class="calendar-cell">9</div>
<div class="calendar-cell">10</div>
<div class="calendar-cell">11</div>
<div class="calendar-cell">12</div>
<div class="calendar-cell">13</div>
<div class="calendar-cell">14</div>
<div class="calendar-cell">15</div>
<div class="calendar-cell">16</div>
<div class="calendar-cell">17</div>
<div class="calendar-cell">18</div>
<div class="calendar-cell">19</div>
<div class="calendar-cell">20</div>
<div class="calendar-cell">21</div>
<div class="calendar-cell">22</div>
<div class="calendar-cell">23</div>
<div class="calendar-cell">24</div>
<div class="calendar-cell">25</div>
<div class="calendar-cell">26</div>
<div class="calendar-cell">27</div>
<div class="calendar-cell">28</div>
<div class="calendar-cell">29</div>
<div class="calendar-cell">30</div>
<div class="calendar-cell">31</div>
</div>
</div>
</div>
<script>
// 获取当前日期
const today = new Date();
const todayDate = today.getDate();
const todayMonth = today.getMonth() + 1; // 月份从0开始
const todayYear = today.getFullYear();
// 高亮显示今天的日期
const cells = document.querySelectorAll('.calendar-cell');
cells.forEach(cell => {
if (parseInt(cell.textContent) === todayDate) {
cell.classList.add('today');
}
});
</script>
</body>
</html>
代码解析
- HTML结构:我们创建了一个包含两个日历的容器,每个日历都有一个标题和一个网格布局,用于显示日期。
- CSS样式:我们使用Flexbox布局来对齐日历容器,并使用Grid布局来排列每个月的日期。我们还为今天的日期添加了一个特殊的样式。
- JavaScript代码:我们获取当前日期,并在日历中找到对应的日期单元格,然后为其添加一个特殊的CSS类,以高亮显示今天的日期。
步骤二:添加CSS样式
接下来,我们需要添加一些CSS样式来美化日历界面。我们将使用Flexbox来布局日历容器,并使用Grid布局来排列每个月的日期。
<style>
.calendar-container {
display: flex;
justify-content: center;
align-items: center;
margin: 20px;
}
.calendar {
border: 1px solid #ccc;
margin: 10px;
padding: 10px;
}
.calendar-header {
text-align: center;
font-size: 20px;
margin-bottom: 10px;
}
.calendar-grid {
display: grid;
grid-template-columns: repeat(7, 1fr);
gap: 5px;
}
.calendar-cell {
width: 40px;
height: 40px;
display: flex;
justify-content: center;
align-items: center;
border: 1px solid #ccc;
}
.today {
background-color: #00f;
color: #fff;
border-radius: 50%;
}
</style>
代码解析
- .calendar-container:使用Flexbox布局来对齐日历容器。
- .calendar:为每个月的日历添加边框、外边距和内边距。
- .calendar-header:设置日历标题的文本对齐方式、字体大小和下边距。
- .calendar-grid:使用Grid布局来排列每个月的日期,设置每行7个单元格,并添加间距。
- .calendar-cell:设置日期
步骤三:使用JavaScript高亮显示今天的日期
最后,我们将使用JavaScript来高亮显示今天的日期。我们将获取当前日期,并在日历中找到对应的日期单元格,然后为其添加一个特殊的CSS类。
<script>
// 获取当前日期
const today = new Date();
const todayDate = today.getDate();
const todayMonth = today.getMonth() + 1; // 月份从0开始
const todayYear = today.getFullYear();
// 高亮显示今天的日期
const cells = document.querySelectorAll('.calendar-cell');
cells.forEach(cell => {
if (parseInt(cell.textContent) === todayDate) {
cell.classList.add('today');
}
});
</script>
代码解析
- 获取当前日期:我们使用
new Date()
获取当前日期,并分别获取日期、月份和年份。 - 高亮显示今天的日期:我们使用
querySelectorAll
选择所有的日期单元格,然后遍历这些单元格,检查其内容是否与今天的日期匹配。如果匹配,则为该单元格添加today
类,从而高亮显示。
整体代码
以下是完整的HTML、CSS和JavaScript代码:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>日历界面</title>
<style>
.calendar-container {
display: flex;
justify-content: center;
align-items: center;
margin: 20px;
}
.calendar {
border: 1px solid #ccc;
margin: 10px;
padding: 10px;
}
.calendar-header {
text-align: center;
font-size: 20px;
margin-bottom: 10px;
}
.calendar-grid {
display: grid;
grid-template-columns: repeat(7, 1fr);
gap: 5px;
}
.calendar-cell {
width: 40px;
height: 40px;
display: flex;
justify-content: center;
align-items: center;
border: 1px solid #ccc;
}
.today {
background-color: #00f;
color: #fff;
border-radius: 50%;
}
</style>
</head>
<body>
<div class="calendar-container">
<div class="calendar">
<div class="calendar-header">2024年7月</div>
<div class="calendar-grid">
<div class="calendar-cell">日</div>
<div class="calendar-cell">一</div>
<div class="calendar-cell">二</div>
<div class="calendar-cell">三</div>
<div class="calendar-cell">四</div>
<div class="calendar-cell">五</div>
<div class="calendar-cell">六</div>
<!-- 这里填充7月的日期 -->
<div class="calendar-cell">30</div>
<div class="calendar-cell">1</div>
<div class="calendar-cell">2</div>
<div class="calendar-cell">3</div>
<div class="calendar-cell">4</div>
<div class="calendar-cell">5</div>
<div class="calendar-cell">6</div>
<div class="calendar-cell">7</div>
<div class="calendar-cell">8</div>
<div class="calendar-cell">9</div>
<div class="calendar-cell">10</div>
<div class="calendar-cell">11</div>
<div class="calendar-cell">12</div>
<div class="calendar-cell">13</div>
<div class="calendar-cell">14</div>
<div class="calendar-cell">15</div>
<div class="calendar-cell">16</div>
<div class="calendar-cell">17</div>
<div class="calendar-cell">18</div>
<div class="calendar-cell">19</div>
<div class="calendar-cell">20</div>
<div class="calendar-cell">21</div>
<div class="calendar-cell">22</div>
<div class="calendar-cell">23</div>
<div class="calendar-cell">24</div>
<div class="calendar-cell">25</div>
<div class="calendar-cell">26</div>
<div class="calendar-cell">27</div>
<div class="calendar-cell">28</div>
<div class="calendar-cell">29</div>
<div class="calendar-cell">30</div>
<div class="calendar-cell">31</div>
</div>
</div>
<div class="calendar">
<div class="calendar-header">2024年8月</div>
<div class="calendar-grid">
<div class="calendar-cell">日</div>
<div class="calendar-cell">一</div>
<div class="calendar-cell">二</div>
<div class="calendar-cell">三</div>
<div class="calendar-cell">四</div>
<div class="calendar-cell">五</div>
<div class="calendar-cell">六</div>
<!-- 这里填充8月的日期 -->
<div class="calendar-cell">1</div>
<div class="calendar-cell">2</div>
<div class="calendar-cell">3</div>
<div class="calendar-cell">4</div>
<div class="calendar-cell">5</div>
<div class="calendar-cell">6</div>
<div class="calendar-cell">7</div>
<div class="calendar-cell">8</div>
<div class="calendar-cell">9</div>
<div class="calendar-cell">10</div>
<div class="calendar-cell">11</div>
<div class="calendar-cell">12</div>
<div class="calendar-cell">13</div>
<div class="calendar-cell">14</div>
<div class="calendar-cell">15</div>
<div class="calendar-cell">16</div>
<div class="calendar-cell">17</div>
<div class="calendar-cell">18</div>
<div class="calendar-cell">19</div>
<div class="calendar-cell">20</div>
<div class="calendar-cell">21</div>
<div class="calendar-cell">22</div>
<div class="calendar-cell">23</div>
<div class="calendar-cell">24</div>
<div class="calendar-cell">25</div>
<div class="calendar-cell">26</div>
<div class="calendar-cell">27</div>
<div class="calendar-cell">28</div>
<div class="calendar-cell">29</div>
<div class="calendar-cell">30</div>
<div class="calendar-cell">31</div>
</div>
</div>
</div>
<script>
// 获取当前日期
const today = new Date();
const todayDate = today.getDate();
const todayMonth = today.getMonth() + 1; // 月份从0开始
const todayYear = today.getFullYear();
// 高亮显示今天的日期
const cells = document.querySelectorAll('.calendar-cell');
cells.forEach(cell => {
if (parseInt(cell.textContent) === todayDate) {
cell.classList.add('today');
}
});
</script>
</body>
</html>
效果图:
结论
通过以上步骤,我们成功创建了一个简单的日历界面,并高亮显示了今天的日期。你可以根据需要进一步扩展和美化这个日历界面,例如添加月份切换功能、日期选择功能等。希望这篇文章对你有所帮助!
如果你有任何问题或需要进一步的帮助,请随时告诉我。
其他文章推荐
如果你对 Python 编程感兴趣,以下是一些推荐的文章:
- 使用 python 创建一个 Web 计算器 (基于Python Flask)-CSDN博客
- 使用 Python 创建个人记账应用-CSDN博客
- 在 Python 中以 特定格式 打印 所有 ASCII字符-CSDN博客
- 使用 pt5 制作 文件查询工具-CSDN博客
- 使用PyQt5和 QtChart 可视化图表 创建多界面应用_pyqt设计两个页面-CSDN博客
希望这些推荐的文章对你有帮助,祝你编程愉快!如果你有任何其他问题,请随时告诉我。😊