HTML生成可编辑的日历

时间: 2023-06-20 09:08:22 浏览: 55
要生成可编辑的日历,您可以使用 HTML、CSS 和 JavaScript。以下是一个简单的示例: HTML 代码: ```html <div id="calendar"></div> ``` CSS 代码: ```css .calendar-day { display: inline-block; width: 100px; height: 100px; border: 1px solid #ccc; box-sizing: border-box; padding: 10px; vertical-align: top; text-align: center; cursor: pointer; } .calendar-day:hover { background-color: #f5f5f5; } .calendar-day.selected { background-color: #007bff; color: #fff; } ``` JavaScript 代码: ```javascript var calendar = document.getElementById("calendar"); var days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; // 获取当前日期 var today = new Date(); // 创建日历标题 var calendarTitle = document.createElement("h2"); calendarTitle.innerHTML = months[today.getMonth()] + " " + today.getFullYear(); calendar.appendChild(calendarTitle); // 创建星期标题栏 var weekDays = document.createElement("div"); weekDays.classList.add("calendar-weekdays"); for (var i = 0; i < days.length; i++) { var day = document.createElement("div"); day.innerHTML = days[i]; weekDays.appendChild(day); } calendar.appendChild(weekDays); // 创建日期格子 var currentMonth = today.getMonth(); var currentYear = today.getFullYear(); var daysInMonth = new Date(currentYear, currentMonth + 1, 0).getDate(); var firstDay = new Date(currentYear, currentMonth, 1).getDay(); var date = 1; var day = 0; var calendarDays = document.createElement("div"); calendarDays.classList.add("calendar-days"); while (date <= daysInMonth) { var calendarDay = document.createElement("div"); calendarDay.classList.add("calendar-day"); if (day < firstDay) { calendarDay.innerHTML = ""; } else { calendarDay.innerHTML = date; calendarDay.setAttribute("data-date", currentMonth + 1 + "/" + date + "/" + currentYear); if (currentMonth === today.getMonth() && date === today.getDate()) { calendarDay.classList.add("today"); } date++; } calendarDays.appendChild(calendarDay); day++; } calendar.appendChild(calendarDays); // 添加点击事件监听器 var calendarDayElements = document.querySelectorAll(".calendar-day"); for (var i = 0; i < calendarDayElements.length; i++) { calendarDayElements[i].addEventListener("click", function() { // 取消先前选中的日期 var selectedDayElement = document.querySelector(".calendar-day.selected"); if (selectedDayElement) { selectedDayElement.classList.remove("selected"); } // 选中当前日期 this.classList.add("selected"); }); } ``` 这个示例会生成一个具有当前月份的日历,您可以通过单击日期来选择它。您可以使用 CSS 自定义样式并使用 JavaScript 处理选定日期的逻辑。

相关推荐

最新推荐

recommend-type

2022年日历表A4纸完美打印版.doc

2022年日历表A4纸完美打印文档,word版本可编辑,无编辑需求的用户可直接打印
recommend-type

基于FPGA的数字日历设计

本文介绍如何利用VHDL 硬件描述语言设计一个具有年、月、日、星期、时、分、秒计时显示功能,时间调整功能和整点报时功能的数字日历。
recommend-type

Java实现的日历功能完整示例

主要介绍了Java实现的日历功能,结合完整实例形式分析了Java日历功能相关的日期时间获取、计算、显示等操作技巧,需要的朋友可以参考下
recommend-type

Android开发之日历CalendarView用法示例

主要介绍了Android开发之日历CalendarView用法,简单分析了日历CalendarView组件的功能、属性设置方法、界面布局、事件监听等相关操作技巧,需要的朋友可以参考下
recommend-type

基于Vue2-Calendar改进的日历组件(含中文使用说明)

主要介绍了基于Vue2-Calendar改进的日历组件(含中文使用说明)的相关知识,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

HSV转为RGB的计算公式

HSV (Hue, Saturation, Value) 和 RGB (Red, Green, Blue) 是两种表示颜色的方式。下面是将 HSV 转换为 RGB 的计算公式: 1. 将 HSV 中的 S 和 V 值除以 100,得到范围在 0~1 之间的值。 2. 计算色相 H 在 RGB 中的值。如果 H 的范围在 0~60 或者 300~360 之间,则 R = V,G = (H/60)×V,B = 0。如果 H 的范围在 60~120 之间,则 R = ((120-H)/60)×V,G = V,B = 0。如果 H 的范围在 120~180 之间,则 R = 0,G = V,B =
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。