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

如何用 Flex 或 Grid 将单列链接列表均分为两列(共用同一标题)

千萱大大_1299

千萱大大_1299

发布时间:2026-01-27 11:23:13

|

892人浏览过

|

来源于php中文网

原创

如何用 Flex 或 Grid 将单列链接列表均分为两列(共用同一标题)

本文详解如何在保持单一标题(如“club links”)的前提下,将一组长链接(如 20 个)通过 css flexbox 或 css grid 均匀拆分为视觉上的两列布局,适用于页脚等场景,并提供可直接复用的代码方案与关键注意事项。

在构建响应式页脚时,常需将大量导航链接(例如 20 个“Club Links”)在有限水平空间内清晰呈现。若全部垂直堆叠,会拉长页面、降低可读性;而简单使用 display: flex 默认行为(flex-direction: row)又容易导致子项强行横排溢出。正确解法是:保留语义结构(一个 <h4> 标题 + 一个包含所有 <a> 的容器),仅通过 CSS 控制该容器内部的多列流式布局——推荐优先使用 CSS Grid,其次选用 Flexbox 配合宽度控制。

✅ 推荐方案:CSS Grid(简洁、精准、无需 JS)

Grid 天然支持列数声明与自动换行,语义清晰且兼容性优秀(现代浏览器全覆盖):

<footer class="footer">
  <div class="col">其他列</div>
  <div class="col">其他列</div>
  <div class="col">
    <h4 class="title">Club Links</h4>
    <div class="links-grid">
      <a href="#">Archery Club</a>
      <a href="#">Badminton Club</a>
      <a href="#">Chess Society</a>
      <a href="#">Dance Team</a>
      <a href="#">Eco Warriors</a>
      <a href="#">Film Society</a>
      <a href="#">Gaming Guild</a>
      <a href="#">Hiking Group</a>
      <a href="#">Illustration Club</a>
      <a href="#">Jazz Ensemble</a>
      <a href="#">Knitting Circle</a>
      <a href="#">Lacrosse Team</a>
      <!-- 共 20 条链接 -->
    </div>
  </div>
</footer>
.links-grid {
  display: grid;
  grid-template-columns: 1fr 1fr; /* 精确两列,等宽自适应 */
  gap: 0.5rem 1rem;               /* 行间距小,列间距适中 */
  /* 可选:限制最大高度并启用滚动(防超长列表破坏布局) */
  /* max-height: 200px; overflow-y: auto; */
}

✅ 优势:无需为每个链接设固定宽度;自动按源顺序从上到下、从左到右填充;响应式友好(后续可用 @media 改为 1fr 单列)。

Comprehensive Three.js 3D graphics reference
Comprehensive Three.js 3D graphics reference

详细的 Three.js 3D 图形参考,涵盖场景设置、相机、几何体、材质、光照、动画、控制器、加载器、数学工具和调试。

下载

⚙️ 备选方案:Flexbox(需显式控制项宽)

若必须用 Flexbox(如需兼容极老环境),关键在于让每个链接占据约 50% 宽度,并启用换行:

.links-flex {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
}

.links-flex a {
  flex: 0 0 calc(50% - 0.5rem); /* 减去 half-gap 避免换行错位 */
  margin-bottom: 0;            /* 清除默认下边距干扰 */
}

⚠️ 注意事项:

  • 避免 width: 50%:因 gap 会额外占用空间,直接写 50% 可能导致第二项被迫换行;
  • 务必设置 flex-wrap: wrap,否则所有链接将强行挤在一行;
  • 若链接文字长度差异大,两列可能出现高度不齐——此时 Grid 是更稳健的选择。

? 最佳实践总结

  • 结构优先:标题 <h4> 与链接容器分离,确保语义正确与 SEO 友好;
  • Grid 优于 Flex:对“N 项分 M 列”类需求,grid-template-columns 更直观可靠;
  • 响应式增强:添加媒体查询,在移动端回退为单列:
    @media (max-width: 768px) {
      .links-grid { grid-template-columns: 1fr; }
    }
  • 可访问性:保持链接自然 DOM 顺序(无需 JS 重排),屏幕阅读器可线性朗读全部内容。

通过以上任一方案,你即可在不重复标题、不修改 HTML 结构的前提下,优雅实现“单标题 + 双列链接”的专业页脚布局。

热门AI工具

更多
Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

豆包大模型

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

WorkBuddy

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

二狗PPT
二狗PPT Hot

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

DeepSeek

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

UpDream
UpDream Hot

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

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

相关专题

更多
堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

4607

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2108

2023.08.10

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

3796

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1195

2023.07.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

1538

2023.08.03

js是什么意思
js是什么意思

JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

9243

2023.08.17

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

840

2023.09.01

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

2224

2023.09.04

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

20

2026.09.23

热门下载

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

精品课程

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

共14课时 | 1.5万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 5.6万人学习

CSS教程
CSS教程

共754课时 | 93.7万人学习

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

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