CSS div日歷代碼可在網(wǎng)頁(yè)中實(shí)現(xiàn)日歷的顯示和操作,具有靈活性和美觀度高等優(yōu)點(diǎn)。下面是一份簡(jiǎn)單的基于div的日歷代碼示例。
/* 定義日歷容器 */ .calendar { width: 260px; border: 1px solid #ccc; padding: 10px; font-size: 14px; } /* 定義表頭樣式 */ .calendar .header { display: flex; justify-content: space-between; margin-bottom: 10px; font-weight: bold; } /* 定義周一到周日的組頭樣式 */ .calendar .weekdays { display: flex; justify-content: space-between; margin-bottom: 10px; font-weight: bold; } /* 定義日期單元格樣式 */ .calendar .day { width: 30px; height: 30px; display: flex; justify-content: center; align-items: center; border: 1px solid #ccc; cursor: pointer; } /* 定義當(dāng)前選中日期樣式 */ .calendar .day.selected { background-color: #666; color: #fff; } /* 定義今日日期樣式 */ .calendar .day.today { background-color: #eee; font-weight: bold; } /* 定義日期列表格式 */ .calendar .days { display: flex; flex-wrap: wrap; } /* 清除日期列表浮動(dòng) */ .calendar .days:after { content: ""; display: table; clear: both; }
上面的代碼定義了一個(gè)名為“calendar”的div容器,包含四個(gè)子元素:頭部(header)、每周的周幾(weekdays)、日期單元格(day)和日期列表(days)。代碼還定義了不同單元格(day)的樣式,以及選中和今天日期的樣式。我們可以在實(shí)際使用時(shí)修改這些樣式。
此外,我們還需要使用JavaScript實(shí)現(xiàn)日歷的動(dòng)態(tài)交互。例如,當(dāng)用戶(hù)點(diǎn)擊一個(gè)日期單元格時(shí),我們需要改變?cè)搯卧竦臓顟B(tài),并更新選中日期的顯示。以下是一個(gè)簡(jiǎn)單的JavaScript代碼示例。
/* 獲取日歷容器 */ var calendar = document.querySelector(".calendar"); /* 獲取日期單元格元素列表 */ var days = calendar.querySelectorAll(".day"); /* 初始選中日期為今天 */ var selectedDate = new Date(); /* 更新選中日期顯示函數(shù) */ function updateSelectedDate() { var dateStr = selectedDate.getFullYear() + "-" + (selectedDate.getMonth() + 1) + "-" + selectedDate.getDate(); calendar.querySelector(".header span").textContent = dateStr; } /* 日期單元格點(diǎn)擊事件處理函數(shù) */ function onDayClick(event) { var day = event.currentTarget; if (!day.classList.contains("today")) { /* 取消之前選中日期 */ calendar.querySelector(".day.selected").classList.remove("selected"); /* 更新選中日期 */ selectedDate.setDate(Number(day.textContent)); day.classList.add("selected"); /* 更新選中日期顯示 */ updateSelectedDate(); } } /* 綁定日期單元格點(diǎn)擊事件 */ days.forEach(function(day) { day.addEventListener("click", onDayClick); }); /* 初始化日歷顯示 */ updateSelectedDate();
上面的代碼實(shí)現(xiàn)了選中日期的初始化、選中日期的更新和選中日期的顯示等功能。我們可以在不同的DOM事件中調(diào)用這些函數(shù),從而實(shí)現(xiàn)更多復(fù)雜的交互模式。