CSS动态日历是一种使用CSS和JavaScript技术实现的交互式日历。它可以根据用户的需求动态显示日期,并且可以通过不同的样式和布局来增强用户体验。
以下是一个简单的CSS+JavaScript动态日历示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dynamic Calendar</title>
<style>
.calendar {
width: 300px;
border: 1px solid #ccc;
padding: 10px;
}
.calendar th, .calendar td {
text-align: center;
padding: 5px;
}
.calendar th {
background-color: #f2f2f2;
}
.calendar .today {
background-color: #ffcccc;
}
</style>
</head>
<body>
<div class="calendar">
<table>
<thead>
<tr>
<th>Sun</th>
<th>Mon</th>
<th>Tue</th>
<th>Wed</th>
<th>Thu</th>
<th>Fri</th>
<th>Sat</th>
</tr>
</thead>
<tbody id="calendar-body">
</tbody>
</table>
</div>
<script>
function generateCalendar(year, month) {
const firstDay = new Date(year, month, 1).getDay();
const daysInMonth = new Date(year, month + 1, 0).getDate();
let html = '';
for (let i = 0; i < firstDay; i++) {
html += '<td></td>';
}
for (let day = 1; day <= daysInMonth; day++) {
if ((firstDay + day) % 7 === 1 && day !== 1) {
html += '<tr>';
}
html += `<td class="${new Date().getFullYear() === year && new Date().getMonth() === month && day === new Date().getDate() ? 'today' : ''}">${day}</td>`;
if ((firstDay + day) % 7 === 0) {
html += '</tr>';
}
}
document.getElementById('calendar-body').innerHTML = html;
}
const today = new Date();
generateCalendar(today.getFullYear(), today.getMonth());
</script>
</body>
</html>
通过以上示例和解决方案,你应该能够制作一个基本的CSS动态日历,并解决一些常见问题。
领取专属 10元无门槛券
手把手带您无忧上云