讲师中心 微信公众号
AI工具推荐 视频效率加速

响应式会议日程表模板:基于 CSS Grid 的多地点时间轴设计

小宇同学_8715

小宇同学_8715

发布时间:2026-02-23 11:01:15

|

894人浏览过

|

来源于php中文网

原创

响应式会议日程表模板:基于 CSS Grid 的多地点时间轴设计

本文介绍一种使用 css grid 构建的响应式会议日程表方案,支持桌面端(时间轴垂直、地点横向排列)与移动端(地点垂直、时间轴横向并可水平滚动)双模式切换,并原生支持跨列/跨行的“休息时段”区块布局。

本文介绍一种使用 css grid 构建的响应式会议日程表方案,支持桌面端(时间轴垂直、地点横向排列)与移动端(地点垂直、时间轴横向并可水平滚动)双模式切换,并原生支持跨列/跨行的“休息时段”区块布局。

在组织多场地、多时段的会议或活动时,一个清晰、灵活且适配多设备的日程可视化方案至关重要。传统基于

CSS工具箱(专业版)
CSS工具箱(专业版)

全功能 CSS 工程手册,覆盖性能优化、无障碍、设计系统与跨浏览器兼容。

下载
或浮动布局的实现难以优雅处理“跨地点休息时段”(如茶歇覆盖全部三个会场),而列表式结构(如
    +
  • )又缺乏二维空间控制能力。CSS Grid 凭借其显式的行列定义与区域合并能力,成为构建此类动态时间表的理想选择。

    以下是一个生产就绪的精简模板,核心逻辑如下:

    • 使用 grid-area 精确定义每个区块在网格中的起止行列;
    • 通过 @media 查询区分横屏(桌面)与竖屏(移动)布局,避免依赖 orientation(该属性在桌面浏览器中不可靠);
    • 移动端启用水平滚动(overflow-x: auto),确保窄屏下完整内容可见;
    • 所有区块均采用语义化 ID,并支持无障碍标签(建议后续补充 aria-label 和 role="region")。

    ✅ 完整 HTML + CSS 示例

    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
      <title>会议日程表</title>
      <style>
        * { box-sizing: border-box; }
        body {
          margin: 0;
          font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
          line-height: 1.5;
        }
    
        #timetable {
          display: grid;
          width: 100vw;
          min-height: 100vh;
          padding: 1rem;
          gap: 0.75rem;
          /* 默认为移动端布局:地点在左,时间在上 */
          grid-template-rows: repeat(3, 1fr);     /* 3 地点行 */
          grid-template-columns: 8rem repeat(12, 1fr); /* 第一列为地点,后12列为时间槽(如每30min一格) */
          overflow-x: auto;
          scroll-behavior: smooth;
        }
    
        /* 桌面端:转为时间在左、地点在上 */
        @media (min-width: 768px) {
          #timetable {
            grid-template-rows: 3rem repeat(12, 1fr); /* 第一行为时间标题,后12行为时间槽 */
            grid-template-columns: 6rem repeat(3, 1fr); /* 第一列为时间,后3列为地点 */
            overflow-x: visible;
          }
        }
    
        /* 公共样式 */
        .slot {
          padding: 0.75rem;
          border-radius: 0.375rem;
          color: #333;
          font-weight: 500;
          white-space: normal;
          overflow: hidden;
          text-overflow: ellipsis;
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-items: flex-start;
        }
    
        .slot-time, .slot-location {
          background-color: #f1f5f9;
          font-size: 0.875rem;
          font-weight: 600;
          color: #475569;
          display: flex;
          align-items: center;
          justify-content: center;
        }
    
        /* 示例区块 —— 可按需替换为真实数据 */
        #location-a { grid-area: 2 / 1 / 3 / 2; background-color: #e0f2fe; }
        #location-b { grid-area: 3 / 1 / 4 / 2; background-color: #dbeafe; }
        #location-c { grid-area: 4 / 1 / 5 / 2; background-color: #f0fdf4; }
    
        #time-0900 { grid-area: 1 / 2 / 2 / 3; background-color: #f1f5f9; }
        #time-0930 { grid-area: 1 / 3 / 2 / 4; background-color: #f1f5f9; }
        #time-1000 { grid-area: 1 / 4 / 2 / 5; background-color: #f1f5f9; }
    
        #talk-1 { grid-area: 2 / 2 / 3 / 4; background-color: #bfdbfe; }
        #talk-2 { grid-area: 3 / 3 / 4 / 5; background-color: #c7d2fe; }
        #lunch   { grid-area: 2 / 4 / 4 / 5; background-color: #fcd34d; } /* 跨2地点 */
        #keynote { grid-area: 2 / 5 / 5 / 6; background-color: #a78bfa; } /* 跨3地点 */
    
        /* 桌面端重定位 */
        @media (min-width: 768px) {
          #location-a { grid-area: 1 / 2 / 2 / 3; background-color: #e0f2fe; }
          #location-b { grid-area: 1 / 3 / 2 / 4; background-color: #dbeafe; }
          #location-c { grid-area: 1 / 4 / 2 / 5; background-color: #f0fdf4; }
    
          #time-0900 { grid-area: 2 / 1 / 3 / 2; background-color: #f1f5f9; }
          #time-0930 { grid-area: 3 / 1 / 4 / 2; background-color: #f1f5f9; }
          #time-1000 { grid-area: 4 / 1 / 5 / 2; background-color: #f1f5f9; }
    
          #talk-1 { grid-area: 2 / 2 / 3 / 3; background-color: #bfdbfe; }
          #talk-2 { grid-area: 3 / 3 / 4 / 4; background-color: #c7d2fe; }
          #lunch   { grid-area: 2 / 4 / 4 / 5; background-color: #fcd34d; } /* 跨2时间槽 */
          #keynote { grid-area: 2 / 2 / 5 / 5; background-color: #a78bfa; } /* 跨3时间槽 & 3地点 → 实际占满整个区域 */
        }
      </style>
    </head>
    <body>
      <div id="timetable">
        <!-- 地点标题(移动端第一列) -->
        <div id="location-a" class="slot slot-location">主会场 A</div>
        <div id="location-b" class="slot slot-location">分会场 B</div>
        <div id="location-c" class="slot slot-location">线上会议室 C</div>
    
        <!-- 时间标题(移动端顶部行) -->
        <div id="time-0900" class="slot slot-time">09:00</div>
        <div id="time-0930" class="slot slot-time">09:30</div>
        <div id="time-1000" class="slot slot-time">10:00</div>
        <div id="time-1030" class="slot slot-time">10:30</div>
        <div id="time-1100" class="slot slot-time">11:00</div>
    
        <!-- 活动区块 -->
        <div id="talk-1" class="slot">主题演讲:未来趋势</div>
        <div id="talk-2" class="slot">圆桌讨论:技术实践</div>
        <div id="lunch" class="slot">午餐 & 交流</div>
        <div id="keynote" class="slot">重磅主旨演讲</div>
      </div>
    </body>
    </html>

    ⚠️ 关键注意事项

    • 避免 orientation: portrait/landscape 媒体查询:该特性在桌面浏览器中不触发,且平板横竖屏切换时行为不稳定;推荐使用 min-width(如 768px)或 min-height 配合视口单位判断。
    • 跨区域合并必须显式声明:Grid 中“跨多列/多行”的区块(如茶歇、主旨演讲)需用 grid-area: r1 / c1 / r2 / c2 明确范围,不能依赖自动流式布局。
    • 移动端水平滚动体验优化:
      • 添加 scroll-behavior: smooth 提升滑动流畅度;
      • 对容器设置 overscroll-behavior-x: contain 可防止滚动穿透到父级;
      • 建议为 .slot 添加 flex-shrink: 0 防止内容被压缩。
    • 可访问性增强:为每个 .slot 添加 aria-label(如 aria-label="主会场A,09:00–09:30:主题演讲"),并用

      包裹标题区域。

    ✅ 总结

    本方案以 CSS Grid 为核心,摆脱了表格语义束缚与列表布局局限,天然支持二维空间伸缩与区域合并,同时通过媒体查询实现真正的响应式重构——不仅是尺寸适配,更是信息架构的逻辑重组。开发者可基于此模板快速注入真实日程数据(建议配合 JavaScript 动态渲染),并轻松扩展为支持拖拽编辑、实时状态标记、导出 PDF 等高级功能的完整日程系统。

热门AI工具

更多
二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

相关专题

更多
overflow什么意思
overflow什么意思

overflow是一个用于控制元素溢出内容的属性,当元素的内容超出其指定的尺寸时,overflow属性可以决定如何处理这些溢出的内容。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3200

2024.08.15

flex教程
flex教程

php中文网为大家带来了flex教程合集,Flex是采用Flex布局的元素,称为Flex容器(flex container),简称"容器",它的所有子元素自动成为容器成员,有三个核心概念: flex项,需要布局的元素;flex容器,其包含flex项;排列方向,这决定了flex项的布局方向。php中文网还为大家带来flex的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

11397

2023.06.14

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

0

2026.11.06

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

0

2026.11.06

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

20

2026.11.06

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

40

2026.11.05

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

20

2026.11.05

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

40

2026.11.04

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

40

2026.11.04

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 1.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn