【CSS练习】万年历 html+css+js

news2024/11/30 2:51:42

效果图

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>

    <style>
      body {
        margin: 0;
      }

      #box {
        width: 600px;
        margin: 50px auto;
        border: 1px solid blue;
      }

      #box header {
        height: 50px;
        line-height: 50px;
        text-align: center;
        color: #fff;
        background-color: #17a;
        padding: 0 10px;
      }

      #box header span {
        cursor: pointer;
      }

      #box header span.fl {
        float: left;
      }

      #box header span.fr {
        float: right;
      }

      #box header div {
        font-size: 30px;
      }

      #box table {
        border-right: 1px solid #ccc;
        border-bottom: 1px solid #ccc;
      }

      #box table th,
      #box table td {
        border-left: 1px solid #ccc;
        border-top: 1px solid #ccc;
        text-align: center;
        height: 30px;
      }
    </style>
  </head>
  <body>
    <div id="box">
      <!-- <header>
            <span class="fl">上个月</span>
            <span class="fr">下个月</span>
            <div>2021年10月</div>
        </header>
        <table width="100%" cellspacing="0" cellpadding="0">
            <thead>
                <tr>
                    <th class="red">周日</th>
                    <th>周一</th>
                    <th>周二</th>
                    <th>周三</th>
                    <th>周四</th>
                    <th>周五</th>
                    <th>周六</th>
                </tr>
            </thead>

            <tbody>
                <tr>
                    <td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td>
                </tr>
                <tr>
                    <td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td>
                </tr>
                <tr>
                    <td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td>
                </tr>
                <tr>
                    <td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td>
                </tr>
                <tr>
                    <td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td>
                </tr>
                <tr>
                    <td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td>
                </tr>
            </tbody>
        </table> -->
    </div>
  </body>

  <script src="jquery-3.5.1.min.js"></script>
  <script>
    $(function () {
      var defaultDate = new Date(2021, 9);
      var box = $("#box");
      var yearMonthTitleDiv = null;
      var prevMonthSpan = null;
      var nextMonthSpan = null;
      var tBody = null;
      var allTd = [];

      // 创建静态布局
      create();
      // 显示当前日期对应的日历
      showDate();

      function create() {
        var header = $(`
        <header>
            <span class="fl">上个月</span>
            <span class="fr">下个月</span>
            <div>2021年10月</div>
        </header>
        `);
        box.append(header);
        yearMonthTitleDiv = header.find("div");
        prevMonthSpan = header.find(".fl");
        nextMonthSpan = header.find(".fr");

        var table = $(
          `
        <table width="100%" cellspacing="0" cellpadding="0">
            <thead>
                <tr>
                    <th class="red">周日</th>
                    <th>周一</th>
                    <th>周二</th>
                    <th>周三</th>
                    <th>周四</th>
                    <th>周五</th>
                    <th>周六</th>
                </tr>
            </thead>

            <tbody>
            </tbody>
          </table>
        `
        );

        box.append(table);
        tBody = table.find("tbody");
        for (var i = 0; i < 6; i++) {
          var tr = $("<tr></tr>");
          for (var k = 0; k < 7; k++) {
            var td = $("<td></td>");
            tr.append(td);
            allTd.push(td);
          }
          tBody.append(tr);
        }
      }

      function showDate() {
        var year = defaultDate.getFullYear(); //年:2021
        var month = defaultDate.getMonth() + 1; //月:10
        yearMonthTitleDiv.text(year + "年" + month + "月");
        // 获取本月1号是星期几
        var week = new Date(year, month - 1, 1).getDay(); //1号是星期几
        // 获取本月最后一天是几号,表示本月有多少天
        var days = new Date(year, month, 0).getDate(); //当前月前一个月的最后一天的日期

        var n = 1;
        for (let i = 0; i < allTd.length; i++) {
          allTd[i].empty();
          if (i >= week && n <= days) {
            allTd[i].text(n);
            n++;
          }
        }

        if(allTd[28].text()===''){
          allTd[28].parent().hide();
          allTd[35].parent().hide();
        }else if(allTd[35].text()===''){
          allTd[35].parent().hide();
        }
        else{
          allTd[28].parent().show();
          allTd[35].parent().show();
        }
      }

      $("#box span").click(function () {
        var year = defaultDate.getFullYear(); //年:2021
        var month = defaultDate.getMonth(); //月:10

        if ($(this).index() == 0) {
          month--;
        } else {
          month++;
        }
        defaultDate = new Date(year, month);
        showDate();
      });
    });
  </script>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1529653.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓝桥杯决赛2023 RE CyberChef2

思路很清晰&#xff0c;爆IV 各种格式转换和删除padding非常麻烦&#xff0c;不过终于还是调出来了 #Cyber2 wp from Crypto.Cipher import DES, AES from Crypto.Util.Padding import pad, unpad key_des b0a0b0c0d cipher bytes.fromhex("416935cabeb8e30cd9b56d…

day0 3r文档docker部署

3R编码 | 3R教室 - 最好的数字游民学习与交流俱乐部! (3rcd.com) window安装wsl下载不下来&#xff0c;正好有个服务器&#xff0c;就用linux吧密钥长度不匹配&#xff0c;设置一下长度即可 文档启动不成功&#xff0c;单独下载了下nginx&#xff0c;docker pull nginx:latest …

C++文件操作详解

C 通过以下几个类支持文件的输入输出&#xff1a; ofstream: 写操作&#xff08;输出&#xff09;的文件类 (由ostream引申而来) ifstream: 读操作&#xff08;输入&#xff09;的文件类(由istream引申而来) fstream: 可同时读写操作的文件类 (由iostream引申而来) 打开文件(…

奶瓶哪个牌子比较好?2024年高评分奶瓶分享,新手必看!

每一个新手宝爸宝妈都会给自己的宝宝选一个合适的奶瓶&#xff0c;但是有很多家长都很疑惑究竟要怎么样选择。特别是市面上有一些为了牟利不择手段的品牌&#xff0c;打造的产品品质糟糕&#xff0c;使用劣质材料等等。所以我精心为各位准备好了五款各有特色的奶瓶测评&#xf…

腾讯云服务器按月收费价格表,优惠价格5元一个月起

2024腾讯云服务器多少钱一个月&#xff1f;5元1个月起&#xff0c;腾讯云轻量服务器4核16G12M带宽32元1个月、96元3个月&#xff0c;8核32G22M配置115元一个月、345元3个月&#xff0c;腾讯云轻量应用服务器61元一年折合5元一个月、4核8G12M配置646元15个月、2核4G5M服务器165元…

人外周血单核细胞来源树突状细胞(MoDC)的制备(一)

MoDC制备方法简图 背景 DC是“Dendritic Cells”的缩写&#xff0c;中文全称为“树突状细胞”&#xff0c;因其成熟时伸出许多树突样或伪足样突起而得名。DC 是由 2011 年诺贝尔奖获得者、加拿大籍科学家 Ralph M. Steinman 于1973 年发现的&#xff0c;是目前发现的功能最强的…

ASP .Net Core ILogger日志服务

&#x1f433;简介 ILogger日志服务是.NET平台中的一个内置服务&#xff0c;主要用于应用程序的日志记录。它提供了灵活的日志记录机制&#xff0c;允许开发者在应用程序中轻松地添加日志功能。以下是其主要特点和组件&#xff1a; ILogger接口&#xff1a;这是ILogger日志服…

ABCDE联合创始人和普通合伙人BMAN确认出席Hack .Summit() 2024

ABCDE联合创始人和普通合伙人BMAN确认出席Hack .Summit() 2024&#xff01; ABCDE联合创始人和普通合伙人BMAN确认出席由 Hack VC 主办&#xff0c;并由 AltLayer 和 Berachain 联合主办&#xff0c;与 SNZ 和数码港合作&#xff0c;由 Techub News 承办的Hack.Summit() 2024区…

【MySql】mysql数据库

一、数据库的基本概念 1.数据 记录事物的信息&#xff1b;按统一的格式进行存储 2.表 数据的集合&#xff0c;表和列的组合&#xff1b;将多条数据组织在一起 3.数据库 表的集合&#xff0c;是存储 相互有关 数据的仓库 二、数据库管理系统 DBMS的主要功能&#xff1a; …

每日OJ题_牛客WY24 洗牌(IO型OJ)

目录 牛客WY24 洗牌 解析代码 牛客WY24 洗牌 洗牌_牛客题霸_牛客网 解析代码 #include <iostream> #include <vector> using namespace std;int main() {int T 0;cin >> T;while (T--){int n 0, k 0;cin >> n >> k;vector<int> arr…

【DBC专题】-11-使用Cantools将CAN/CANFD DBC自动生成C语言代码

目录 1 安装Python和Cantools 1.1 查看Python已安装的Package包 1.2 在Python中安装Cantools插件包 1.3 获取更多Cantools工具的更新动态 2 经典CAN/CANFD DBC自动生成C语言代码 2.1 批处理文件CAN_DBC_To_C.bat内容说明 2.2 经典CAN/CANFD DBC文件要求 2.3 如何使用生…

spring 上传file txt文件

直接上代码 public static void main(String[] args) {// 创建输出文件 (这是我们公司创建file文件的方式,公司自己的依赖)File outputFile Take.Subset().getTemporaryFile();try (FileWriter fileWriter new FileWriter(outputFile);BufferedWriter bufferedWriter new Bu…

【计算机考研】408全年复习保姆级规划+资料

基础阶段 408一共只分为选择题和大题&#xff0c;选择题80分&#xff0c;大题70分。 基础阶段应该要形成相对完整的知识体系&#xff0c;基础知识大概都需要有印象。 在基础阶段&#xff0c;建议不做大题&#xff0c;把课后选择题都好好的做一遍 第一遍的正确率无需过于关注…

默写单词cpp(初学者版本)

笔摔坏了直接使用版:yum:仔细学习版:yum:1.直接使用版:yum:&#xff08;文件使用规范&#xff09;(1)文件(2)使用规范 2.仔细学习版。将会讲各个函数的功能和细节。今天太晚了&#xff0c;明天再写。 笔摔坏了 在一个阳光明媚的早晨&#xff0c;我愉快的奋笔疾书&#xff0c;抄…

蓝桥杯--全球气温变暖

import java.util.Scanner;public class top7 {//全球边暖//思路&#xff0c;就是找出上下左右都是#的地方&#xff0c;如果这个地方是的&#xff0c;那么此时countstatic int count0;public static void main(String[] args) {Scanner scanner new Scanner(System.in);int ns…

Java语法学习七之类和接口

抽象类 抽象类概念 在面向对象的概念中&#xff0c;所有的对象都是通过类来描绘的&#xff0c;但是反过来&#xff0c;并不是所有的类都是用来描绘对象的&#xff0c;如果一个类中没有包含足够的信息来描绘一个具体的对象&#xff0c;这样的类就是抽象类。 比如&#xff1a;…

【STL】List容器介绍+相关练习题详细版本

List 1.List介绍2.使用注意3.list与vector的对比4.练习题 1.List介绍 list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。list的底层是双向链表结构&#xff0c;双向链表中每个元素存储在互不相关的独立节点中&#xff0c;…

一文搞懂机器学习

一、引言 在当今的数字时代&#xff0c;一个概念不断出现在科技前沿的讨论中 —— 机器学习。作为人工智能领域的一个重要分支&#xff0c;机器学习已经从理论研究走向实际应用&#xff0c;深刻地改变着我们的工作和生活方式。 机器学习的核心思想是让机器通过数据学习并做出…

《1w实盘and大盘基金预测 day7》

昨日预测有点差劲&#xff0c;最低点也相差五个点。 打分C 公众号&#xff1a;JavaHelmet 昨天预测&#xff1a; 3052-3062-3076-3115 3067是趋势线&#xff0c;有回踩需求 5-30-60分钟级别顶钝 大盘冲到标红的点位3115或者3100就需注意。不要随意追高&#xff08;最高309…

稀碎从零算法笔记Day22-LeetCode:存在重复元素 II

题型&#xff1a;哈希表、数组 链接&#xff1a;219. 存在重复元素 II - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 给你一个整数数组 nums 和一个整数 k &#xff0c;判断数组中是否存在两个 不同的索引 i 和 j &#xff0c;满足 nums[i] …