Spectre.css是一个轻量、现代且响应式的CSS框架,体积只有十几KB,非常适合需要快速搭建界面的项目。在后台系统、数据报表页面中,表格是最常见的元素之一,但在手机屏幕上如果列太多就会很难看。Spectre.css提供了一系列内置的表格相关类,开发者不需要自己写媒体查询,就能让表格在各类设备上合理展示。

一、Spectre.css表格的基础类
Spectre.css对原生table做了样式归一化处理,最核心的是table类。只要在table标签上加上class="table",就能获得边框折叠、单元格间距统一、字体对齐等基础排版。如果不加任何类,浏览器默认表格线条粗糙且各平台表现不一致。
除了基础类,框架还提供了table-striped实现隔行变色,table-hover在鼠标悬停时高亮当前行,table-bordered增加全边框。这些类可以叠加使用,例如class="table table-striped table-hover"。下面是一段最简结构:
<table class="table table-striped table-hover">
<thead>
<tr>
<th>编号</th>
<th>名称</th>
<th>状态</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>任务A</td>
<td>已完成</td>
</tr>
<tr>
<td>2</td>
<td>任务B</td>
<td>进行中</td>
</tr>
</tbody>
</table>
这种写法几乎零成本,但此时表格本身还不具备响应式能力。当列数增加到七八列时,在窄屏中依旧会溢出屏幕,因此需要配合框架的响应式处理方案。
二、使用滚动容器实现小屏横向滚动
Spectre.css并没有强制把表格变成块级堆叠,而是推荐在窄屏下允许横向滚动,以保证数据完整性。做法是将table放入一个具有固定宽度并开启overflow-x:auto的容器中。框架虽未单独提供容器类,但可以用基础工具类组合。
具体方式如下:用一个div包裹table,并给div加上style或自定义类,设置overflow-x:auto。这样在桌面端表格正常铺开,在手机端用户可滑动查看被隐藏的列,而不会破坏表格语义。代码如下:
<div style="overflow-x:auto;">
<table class="table table-bordered">
<thead>
<tr>
<th>订单号</th>
<th>客户</th>
<th>金额</th>
<th>地址</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>10001</td>
<td>张三</td>
<td>200.00</td>
<td>北京市朝阳区</td>
<td>尽快发货</td>
</tr>
</tbody>
</table>
</div>
这种方案的优点是简单可靠,不需要隐藏数据,对所有屏幕都安全。缺点是手机端需要滑动,如果列非常多,操作体验稍差。因此它适合后台管理、内部系统这类以数据准确为优先的场景。
三、结合hidden类在断点隐藏次要列
如果希望在手机上直接看到核心字段而不滑动,可以利用Spectre.css的响应式隐藏类,例如hidden-sm表示在小屏隐藏。把某些次要的th和td都加上该类,屏幕变窄时这些列自动消失。
要注意的是,table的行列是联动的,隐藏某一列必须在每一行的对应td以及表头的th上都加上相同的hidden类,否则会出现错位。示例代码如下:
<table class="table">
<thead>
<tr>
<th>产品</th>
<th class="hidden-sm">规格</th>
<th>价格</th>
<th class="hidden-sm">库存备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>鼠标</td>
<td class="hidden-sm">无线</td>
<td>99</td>
<td class="hidden-sm">现货充足</td>
</tr>
</tbody>
</table>
这种组合方式让表格在手机上只显示产品与价格,桌面端才展开全部信息。它比纯滚动更贴合移动端浏览习惯,但要求开发者提前规划哪些列属于次要信息。如果隐藏不当,可能造成移动端用户看不到关键内容。
四、综合建议与常见误区
在实际项目中,往往将滚动容器与hidden类结合:先用hidden-sm砍掉最不重要的两列,剩下的列再用横向滚动包容。这样既能控制宽度,又不丢失必要数据。另外,Spectre.css的表格类不会自动把thead变为粘性头部,如果表格很长,可自行添加position:sticky样式。
一个常见误区是认为加了table类表格就自动响应式堆叠成卡片,实际上Spectre.css并没有类似Bootstrap的table-responsive-stack机制。若需要卡片化布局,必须自行用媒体查询改写display属性。因此使用前应明确框架能力边界,避免预期偏差导致移动端样式失控。
Spectre.css响应式表格table类修改时间:2026-08-08 00:27:36