Grid 网格布局怎么实现日历签到表格的行列对齐

老枫姑娘_3169

老枫姑娘_3169

2026-10-14

753人浏览

原创

用css grid实现日历签到表格对齐的关键是统一网格轨道尺寸、显式定义行列结构、避免内容撑开单元格:设置7等宽列和6等高行,用gap控制间距;通过空单元格或grid-column定位首日;日期项用flex居中并限制尺寸;响应式可切单列或缩放。

grid 网格布局怎么实现日历签到表格的行列对齐

用 CSS Grid 实现日历签到表格的行列对齐,关键在于**统一网格轨道尺寸、显式定义行列结构、避免内容撑开单元格**。只要网格容器和子项行为可控,就能做到整齐划一,不依赖 JS 或固定宽高。

1. 设置等宽列 + 等高行

日历通常是 7 列(周一到周日)+ 若干行(最多 6 行)。用 grid-template-columns 和 grid-template-rows 显式声明,确保所有列宽一致、所有行高一致:

.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr); /* 7 等宽列 */
  grid-template-rows: repeat(6, 60px);   /* 6 等高行,可按需调整 */
  gap: 2px; /* 单元格间距,替代 border-spacing */
}

⚠️ 注意:1fr 在等分时比 auto 或 minmax(min-content, 1fr) 更稳定,避免某天文字多导致列宽不均。

2. 用 grid-area 或自动填充控制日期位置

日历首日不一定是周一,需要把第一天“空位”占出来。推荐两种方式:

响应式烟草公司HTML5网站模板
响应式烟草公司HTML5网站模板

响应式烟草公司HTML5网站模板是一款适合提供各种不同种类的优质烟草公司宣传网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。

下载
  • 自动布局(推荐):给每个日期单元格设 grid-column 和 grid-row,或直接用 grid-auto-flow: row 配合 grid-column-start 跳过前置空格;
  • 手动定位:为前导空格元素(如 .empty-cell)设置 grid-column: n,再让第一个日期从对应列开始渲染。

示例(首日是周三,前两天留空):

<div class="calendar-grid">
  <div class="empty-cell"></div>
  <div class="empty-cell"></div>
  <div class="date-item" data-day="1">1</div>
  <div class="date-item" data-day="2">2</div>
  <!-- ... -->
</div>

3. 签到状态单元格保持尺寸一致

签到格子常含图标、数字、背景色等,容易因内容差异造成高度波动。解决方法:

  • 所有日期项设 display: flex; align-items: center; justify-content: center; 居中;
  • 限制字体大小、内边距、图标尺寸,避免溢出;
  • 对签到态加 min-height: 100%; 或 height: 100%;,继承行高;
  • 禁用 white-space: normal 导致换行(除非有意支持多行文案)。

4. 响应式微调建议

小屏下 7 列挤在一起?可改用 grid-template-columns: repeat(auto-fit, minmax(40px, 1fr)),但注意这会破坏“7 列日历”的语义结构。更稳妥的做法是:

  • 在移动端切换为单列滚动视图(grid-template-columns: 1fr),每行显示一个日期+签到状态;
  • 或缩小字体、压缩 gap、用 scale(0.9) 整体缩放容器(配合 transform-origin 居中)。

不复杂但容易忽略——Grid 对齐靠的是轨道定义,不是内容适应。定好列数、行数、尺寸、间隙,再把内容“塞进去”,自然就齐了。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

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

下载

相关标签:

html5

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

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2443

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

5263

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

6310

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

5878

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

843

5

css3教程
css3教程

php中文网为大家提供css3教程合集,CSS3的语法是建立在CSS原先版本基础上的,它允许使用者在标签中指定特定的HTML元素而不必使用多余的class、ID或JavaScript。php中文网还为大家带来css3的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

1880

10

有哪些css3渐变属性
有哪些css3渐变属性

css3中渐变属性有linear-gradient、radial-gradient、conic-gradient、repeating-linear-gradient、repeating-radial-gradient等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.01

2726

5

PixTV官网入口地址合集
PixTV官网入口地址合集

本专题汇总了 PixTV AI 一站式视频创作平台的官方入口与使用教程。无需下载软件,浏览器直接访问即可使用。平台将剧本、图像、视频、声音与剪辑整合在“无限画布”中,接入 GPT Image 2.5、Seedance 2.5 等头部模型。本专题整理了从新建画布、角色锚定、分镜拆分到视频生成与导出的完整操作指南,助你快速上手 AI 短剧与漫剧创作。

2026.10.10

100

15

Kratos框架HTTP与gRPC服务开发教程
Kratos框架HTTP与gRPC服务开发教程

本专题围绕Kratos框架双协议服务开发,涵盖HTTP路由与处理器编写、参数获取、gRPC服务实现与客户端调用、metadata上下文传递、encoding编解码注册、统一响应封装、超时控制与流式响应实现方法。

2026.10.10

40

15

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
HTML5/CSS3/JavaScript/ES6入门课程
HTML5/CSS3/JavaScript/ES6入门课程

共102课时 | 10.8万人学习

HTML+CSS基础与实战
HTML+CSS基础与实战

共132课时 | 18.9万人学习

前端开发(基础+实战项目合集)
前端开发(基础+实战项目合集)

共60课时 | 6.4万人学习