HTML5怎么制作一月份日历
随着互联网的发展,越来越多的应用开始使用HTML5技术进行开发,HTML5具有跨平台、易扩展、高性能等优点,因此在制作日历等应用时也得到了广泛应用,本文将介绍如何使用HTML5制作一月份的日历。
准备工作
1、创建一个HTML文件
2、在文件中引入CSS样式
3、编写HTML结构和JavaScript代码
HTML结构
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>一月份日历</title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="calendar"> <table> <thead> <tr> <th>日</th> <th>一</th> <th>二</th> <th>三</th> <th>四</th> <th>五</th> <th>六</th> </tr> </thead> <tbody id="calendar-body"> </tbody> </table> </div> <script src="script.js"></script> </body> </html>
CSS样式(style.css)
body { font-family: Arial, sans-serif; } .calendar { width: 300px; border: 1px solid ccc; border-radius: 5px; } table { width: 100%; border-collapse: collapse; } th, td { width: 14.28%; text-align: center; padding: 10px; border: 1px solid ccc; }
JavaScript代码(script.js)
function getDaysInMonth(year, month) { return new Date(year, month + 1, 0).getDate(); } function createCalendar(year, month) { const days = getDaysInMonth(year, month); const calendarBody = document.getElementById('calendar-body'); let date = new Date(year, month, 1); Array.from({ length: days + (date.getDay() === 0 && date.getMonth() !== month) || date.getDay() > days}, (_, i) => i + (date.getDay() === 0 && date.getMonth() !== month) || date.getDay() > days).forEach(day => createCalendarCell(calendarBody, year, month, day)); } function createCalendarCell(parent, year, month, day) { const cell = document.createElement('td'); cell.textContent = day; if (day === new Date().getDate() && new Date().getMonth() === month && new Date().getFullYear() === year) cell.classList.add('today'); !parent.firstChild && parent.appendChild(document.createElement('tr')); // 如果没有子元素,先添加一个空行作为占位符 !cell.parentNode && parent.children[0].appendChild(cell); // 如果当前单元格没有父元素,添加到第一个子元素下作为占位符 } createCalendar(new Date().getFullYear(), new Date().getMonth()); // 根据当前日期生成日历
相关问题与解答
1、如何设置日历的字体大小?在CSS样式中修改font-size
属性即可。font-size: 14px;
。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/216796.html