You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用CSS实现窄屏下单单元格独占一行的表格布局

解决方案

1. 微调HTML结构

给表格添加自定义类(比如vertical-table),同时给每个<td>标签添加data-label属性,属性值对应其所在列的表头文本。既保留原有的<table>和<tr>结构,又能让CSS动态读取属性名。

示例HTML:

<table class="vertical-table">
  <thead>
    <tr>
      <th>用户名</th>
      <th>注册时间</th>
      <th>联系方式</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td data-label="用户名">JohnDoe_2024</td>
      <td data-label="注册时间">2024-01-15 14:30</td>
      <td data-label="联系方式">john.doe@example.com</td>
    </tr>
    <tr>
      <td data-label="用户名">JaneSmith_dev</td>
      <td data-label="注册时间">2024-02-20 09:15</td>
      <td data-label="联系方式">jane.smith@example.com</td>
    </tr>
  </tbody>
</table>

2. CSS实现竖排布局

通过CSS将表格转为竖排的「属性名: 属性值」形式,同时添加分隔线区分每个对象行:

/* 重置表格默认样式 */
.vertical-table {
  width: 100%;
  border-collapse: collapse;
  margin: 1rem 0;
}

/* 视觉隐藏表头(DOM结构保留,不影响爬虫解析) */
.vertical-table thead {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

/* 将每个对象行转为块级卡片,添加底部分隔线 */
.vertical-table tbody tr {
  display: block;
  margin-bottom: 1rem;
  border-bottom: 2px solid #eee;
  padding-bottom: 1rem;
}

/* 将每个属性转为单行,用伪元素动态显示属性名 */
.vertical-table tbody td {
  display: block;
  padding: 0.5rem 0;
  text-align: left;
}

.vertical-table tbody td:before {
  content: attr(data-label) ": ";
  font-weight: bold;
  margin-right: 0.5rem;
}

方案说明

  • 完整保留<table>、<tr>结构,爬虫可正常解析表格数据;
  • 借助data-label属性实现属性名动态读取,无需硬编码;
  • 纯CSS实现,无需JavaScript;
  • 无条件生效,所有屏幕下均呈现竖排布局;
  • 视觉隐藏表头避免冗余,同时用分隔线清晰区分不同对象条目。

内容的提问来源于stack exchange,提问作者Richard Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 16:55:08