HTML怎么创建成就连续打卡日历_HTML30天格子打卡结构【说明】

云强酱_4681

云强酱_4681

2026-04-04

1064人浏览

原创

用 css grid 实现30天打卡日历:设 grid-template-columns: repeat(7, 1fr),用 和 data-checked="true" 属性控制状态,配合 aria-pressed 提升可访问性,移动端用 media 查询调列数并确保点击区域≥44×44px。

html怎么创建成就连续打卡日历_html30天格子打卡结构【说明】

怎么用纯 HTML + CSS 实现 30 天连续打卡日历

不需要 JavaScript 就能渲染出 30 个格子的打卡日历,核心是用 <div> 或 <code><span></span> 配合 CSS Grid 布局。关键不是“能不能”,而是“怎么让格子对齐、可标记、不换行错位”。

常见错误是直接写 30 个 <div> 然后用 <code>float 或 inline-block 排列——容易因空格、换行、字体大小导致最后一行只有 4 个格子;更稳妥的方式是强制网格化。

  • 用 display: grid,设 grid-template-columns: repeat(7, 1fr)(固定 7 列),再通过 grid-auto-rows 控制行高
  • 30 天最多占 5 行(4 周 + 2 天),所以容器高度不用硬设,靠 min-height 预留视觉空间即可
  • 每个格子用 <button></button> 而非 <div>,语义正确,也方便后续加点击态(比如 <code>:active 或 [data-checked])

    如何标记「已打卡」和「未打卡」状态

    状态不靠 JS 动态插入 class,而是提前在 HTML 中用属性控制,比如 data-checked="true" 或 data-day="15"。这样 CSS 可以直接响应:

    button[data-checked="true"] {
      background: #4caf50;
      color: white;
    }
    button:not([data-checked="true"]) {
      background: #f5f5f5;
      color: #999;
    }

    注意:不要用 class="checked" 再写一堆重复样式——属性选择器更轻量,也避免 class 名冲突;若需区分「今日」「历史」「不可打」,可用多个 data 属性组合,例如:data-status="today"、data-status="locked"。

    • data-checked 布尔值建议统一用 "true"/"false" 字符串,避免 data-checked 存在即为 true 的歧义(某些框架会自动转换)
    • 如果服务端返回的是 ISO 日期字符串(如 "2024-06-12"),前端渲染时建议转成 day-of-month 数字再写进 data-day,方便 CSS 伪类或 JS 定位
    • 别忘了给已打卡按钮加 aria-pressed="true",提升无障碍体验

    为什么 grid-column-start 不适合手动排布 30 天

    有人想用 grid-column-start 给每个格子指定位置(比如第 1 天放第 3 列、第 2 天放第 4 列),这在「日历要对齐星期几」时看似合理,但实际会让 HTML 结构和语义脱节——第 1 个 <button></button> 对应的是星期三,而 DOM 顺序仍是线性 1~30,屏幕阅读器会按顺序读,用户听到的是“打卡第 1 天、打卡第 2 天…”,而非“星期三、星期四…”。

    Html2md
    Html2md

    使用 Readability + Turndown 将 HTML 页面转换为干净的、Agent 友好的 Markdown。去除导航栏、广告、页脚、Cookie 横幅、社交按钮等干扰元素。支持 URL...

    下载
    • 真正需要首日对齐星期几,应该由服务端/模板引擎计算当月 1 号是周几,然后前置插入空 <button disabled hidden></button> 占位(数量 = 周几索引,周一为 0)
    • 纯静态 30 天打卡(不关联真实日历),就老老实实从左到右、从上到下填满 30 个格子,无需模拟星期偏移
    • 手动设 grid-row/grid-column 会让 CSS 文件膨胀,且无法用 :nth-child() 批量控制样式

    移动端适配和点击反馈的关键细节

    在手机上点小格子容易误触,尤其 30 个挤在一起时。不能只靠增大 font-size,得从交互层加固:

    • 每个 <button></button> 必须设 touch-action: manipulation,减少 iOS Safari 的 300ms 延迟
    • 最小点击区域保证 ≥ 44×44px(iOS)或 48×48dp(Android),可通过 min-width/min-height + padding 实现,别只靠 width/height
    • 用 @media (max-width: 480px) 把 grid 列数从 7 改成 5,避免单格过窄;同时把字体从 14px 提到 16px,文字才不会糊
    • 禁用 user-select: none —— 看似防误选,但会阻止长按复制日期、分享等合理操作

    最常被忽略的是:没设 button { border: none; outline: none; },导致点击后残留焦点环,在深色背景上极难看,又影响视觉连续性。

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关文章

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

html

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
html版权符号
html版权符号

html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

6495

7

html在线编辑器
html在线编辑器

html在线编辑器是用于在线编辑的工具,编辑的内容是基于HTML的文档。它经常被应用于留言板留言、论坛发贴、Blog编写日志或等需要用户输入普通HTML的地方,是Web应用的常用模块之一。php中文网为大家带来了html在线编辑器的相关教程、以及相关文章等内容,供大家免费下载使用。

2023.06.21

3632

4

html网页制作
html网页制作

html网页制作是指使用超文本标记语言来设计和创建网页的过程,html是一种标记语言,它使用标记来描述文档结构和语义,并定义了网页中的各种元素和内容的呈现方式。本专题为大家提供html网页制作的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.31

3310

5

html空格
html空格

html空格是一种用于在网页中添加间隔和对齐文本的特殊字符,被用于在网页中插入额外的空间,以改变元素之间的排列和对齐方式。本专题为大家提供html空格的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.01

3319

5

html是什么
html是什么

HTML是一种标准标记语言,用于创建和呈现网页的结构和内容,是互联网发展的基石,为网页开发提供了丰富的功能和灵活性。本专题为大家提供html相关的各种文章、以及下载和课程。

2023.08.11

4999

6

html字体大小怎么设置
html字体大小怎么设置

在网页设计中,字体大小的选择是至关重要的。合理的字体大小不仅可以提升网页的可读性,还能够影响用户对网页整体布局的感知。php中文网将介绍一些常用的方法和技巧,帮助您在HTML中设置合适的字体大小。

2023.08.11

3261

3

html转txt
html转txt

html转txt的方法有使用文本编辑器、使用在线转换工具和使用Python编程。本专题为大家提供html转txt相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.31

3069

3

html文本框代码怎么写
html文本框代码怎么写

html文本框代码:1、单行文本框【<input type="text" style="height:..;width:..;" />】;2、多行文本框【textarea style=";height:;"></textare】。

2023.09.01

2688

6

HTML嵌入CSS样式的方法
HTML嵌入CSS样式的方法

HTML嵌入CSS样式的方法有内联样式、内部样式表和外部样式表。本专题为大家提供CSS样式相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.20

2788

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
GDB 17.2 官方文档集合
GDB 17.2 官方文档集合

共0课时 | 0人学习

Bootstrap 入门安装配置
Bootstrap 入门安装配置

共0课时 | 0人学习

38+ PhpStorm 提示和技巧
38+ PhpStorm 提示和技巧

共1课时 | 225人学习