Bootstrap怎么修改Table表格在小屏幕下只显示特定的列

胖伟君_2629

胖伟君_2629

2026-07-20

580人浏览

原创

小屏幕下隐藏某些列最稳妥的方法是使用.d-none + .d-sm-table-cell组合;需确保thead与tbody列数一致,避免结构错位,并配合table-responsive等优化移动端显示效果。

bootstrap怎么修改table表格在小屏幕下只显示特定的列

小屏幕下隐藏某些列,用 .d-none + .d-sm-table-cell 组合最稳妥

Bootstrap 5 默认不提供“仅在小屏显示某几列”的内置类,但靠响应式显示类就能干净实现。关键不是删列,而是控制每列在不同断点的可见性。

常见错误是只加 .d-sm-none,结果中屏(sm)及以上也消失了;或者误用 .d-md-none,导致平板上列就不见了。正确做法是反向控制:默认隐藏,只在需要的断点显示。

  • 对「小屏必须保留」的列(比如姓名、操作),加 .d-table-cell(强制行内表格单元格)+ .d-sm-table-cell(sm 及以上显示)
  • 对「小屏要隐藏」的列(比如创建时间、IP 地址),加 .d-none + .d-sm-table-cell —— 这样它只在 sm 及以上才出现
  • 别用 .d-xs-none 或 .d-mobile-none,Bootstrap 5 已移除 xs 断点,最小是 sm

用 data-bs-responsive-col 自定义属性 + JS 动态切换更灵活

如果列显隐逻辑复杂(比如根据设备宽度动态决定显示哪三列),纯 CSS 类会写得很长。这时可以给 <th> 和 <code><td> 加自定义属性,用 JS 控制。 <p>例如标记哪些列属于“小屏核心列”:</p><div class="aritcle_card flexRow artxards"> <div class="artcardd flexRow"> <a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill4914" title="VPS Bootstrap"><img src="https://img.php.cn/upload/skill/000/000/081/179025304626966.jpg" alt="VPS Bootstrap" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a> <div class="aritcle_card_info flexColumn"> <a rel="nofollow" href="/xiazai/skill4914" title="VPS Bootstrap" class="overflowclass">VPS Bootstrap</a> <p class="overflowclass">从零启动全新 VPS,完成 OpenClaw 完整部署,包括备份/恢复及恢复后验证。用于 OpenClaw 部署。</p> </div> <a rel="nofollow" href="/xiazai/skill4914" title="VPS Bootstrap" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a> </div> </div> <pre class="brush:php;toolbar:false;">&lt;th data-bs-responsive-col=&quot;essential&quot;&gt;姓名&lt;/th&gt;&lt;br&gt;&lt;th data-bs-responsive-col=&quot;optional&quot;&gt;邮箱&lt;/th&gt;&lt;br&gt;&lt;th data-bs-responsive-col=&quot;optional&quot;&gt;注册时间&lt;/th&gt;</pre> <p>再配合简单脚本:</p> <pre class="brush:php;toolbar:false;">const isSmall = window.innerWidth document.querySelectorAll('[data-bs-responsive-col=&quot;optional&quot;]').forEach(el =&gt; {&lt;br&gt; el.classList.toggle('d-none', isSmall);&lt;br&gt;});</pre> <ul> <li>注意监听 <code>resize 事件时要做节流,否则频繁触发影响性能

  • 服务端渲染(如 SSR)场景下,JS 执行前用户会看到全量列,建议搭配 prefers-reduced-motion 或初始 CSS 隐藏
  • 别用 window.matchMedia 查询 (max-width: 575.98px) —— 数值要和 Bootstrap 的 $grid-breakpoints 完全一致,否则响应不一致
  • 用 @media 覆盖 Bootstrap 默认样式时,选择器权重必须足够

    有人直接写 @media (max-width: 575.98px) { .hide-on-mobile { display: none !important; } },结果无效。原因通常是 Bootstrap 的 .d-none 已带 !important,而你的规则没压过它。

    • 要么复用 Bootstrap 原生类(推荐),避免重复造轮子
    • 要么提高选择器权重:用 table .hide-on-mobile 或 tbody tr td.hide-on-mobile
    • 绝对不要在 <style></style> 标签里写 !important —— 后续维护时很难定位覆盖来源
    • 检查浏览器开发者工具的“Computed”面板,确认最终生效的是哪条 display 声明

    移动端真机测试时,列宽挤压导致文字换行或溢出

    隐藏列后,剩余列的宽度没重分配,可能撑满屏幕甚至横向滚动。这不是显示逻辑问题,而是表格布局没适配。

    • 给 <table> 加 <code>class="table table-responsive",让整个表可横向滚动(最简方案)
    • 对核心列设 style="min-width: 120px;",防文字被压缩成一堆点
    • 用 text-truncate 类配合 title 属性显示完整内容:
      <td title="很长的邮箱地址"><span class="text-truncate">xxx@...</span></td>
    • 别依赖 table-layout: fixed —— 它会让所有列等宽,反而破坏语义优先级
    • 实际做时,多数情况用第一种纯 CSS 方案就够了。真正容易被忽略的是:隐藏列后,<thead> 和 <code><tbody> 的列数必须严格一致,否则表格结构错位 —— 即使某列 <code>display: none,也要保留在 DOM 中。

    相关专题

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

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

    2023.08.11

    2563

    5

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

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

    2023.10.09

    5543

    6

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

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

    2024.03.19

    6550

    13

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

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

    2024.03.22

    6198

    10

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

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

    2024.05.22

    883

    5

    html5动画制作有哪些制作方法
    html5动画制作有哪些制作方法

    html5动画制作方法有使用CSS3动画、使用JavaScript动画库、使用HTML5 Canvas等。想了解更多html5动画制作方法相关内容,可以阅读本专题下面的文章。

    2023.10.23

    4211

    6

    HTML与HTML5的区别
    HTML与HTML5的区别

    HTML与HTML5的区别:1、html5支持矢量图形,html本身不支持;2、html5中可临时存储数据,html不行;3、html5新增了许多控件;4、html本身不支持音频和视频,html5支持;5、html无法处理不准确的语法,html5能够处理等等。想了解更多HTML与HTML5的相关内容,可以阅读本专题下面的文章。

    2024.03.06

    7288

    6

    html5从入门到精通汇总
    html5从入门到精通汇总

    想系统掌握HTML5开发?本合集精选全网优质学习资源,涵盖免费教程、实战项目、视频课程与权威电子书,从基础语法到高级特性(Canvas、本地存储、响应式布局等)一应俱全,适合零基础小白到进阶开发者,助你高效入门并精通HTML5前端开发。

    2025.12.30

    814

    19

    html5新老标签汇总
    html5新老标签汇总

    HTML5在2026年持续优化网页语义化与交互体验,不仅引入了如<header>、<nav>、<article>、<section>、<aside>、<footer>等结构化标签,还新增了<video>、<audio>、<canvas>、<figure>、<time>、<mark>等增强多媒体与

    2025.12.30

    714

    12

    热门下载

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

    精品课程

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

    共0课时 | 0人学习

    Bootstrap Components 组件文档
    Bootstrap Components 组件文档

    共0课时 | 0人学习

    Bootstrap Grid 栅格系统
    Bootstrap Grid 栅格系统

    共0课时 | 0人学习