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

如何创建带垂直分区格式的Accordion条目(表格行点击展开式)

表格式折叠面板(Accordion)实现方案

下面是一套原生HTML/CSS/JS实现的方案,完全贴合你要的「表格结构+点击行展开内容」的需求:

1. HTML结构

用标准表格搭建框架,每个折叠单元由「触发行」和「内容行」组成,内容行通过colspan实现跨列填充:

<table class="accordion-table">
  <thead>
    <tr>
      <th>序号</th>
      <th>名称</th>
      <th>类别</th>
    </tr>
  </thead>
  <tbody>
    <!-- 第一组折叠项 -->
    <tr class="accordion-header">
      <td>1</td>
      <td>项目A</td>
      <td>工具类</td>
    </tr>
    <tr class="accordion-content">
      <td colspan="3">
        <div class="content-inner">
          <h4>项目A详情</h4>
          <p>这是项目A的具体描述内容,包含功能介绍、使用场景等信息。</p>
          <ul>
            <li>特性1:支持多平台</li>
            <li>特性2:轻量化设计</li>
          </ul>
        </div>
      </td>
    </tr>
    <!-- 第二组折叠项 -->
    <tr class="accordion-header">
      <td>2</td>
      <td>项目B</td>
      <td>服务类</td>
    </tr>
    <tr class="accordion-content">
      <td colspan="3">
        <div class="content-inner">
          <h4>项目B详情</h4>
          <p>项目B主要提供后端服务支持,包含API接口、数据处理模块。</p>
          <p>部署方式:Docker容器化部署</p>
        </div>
      </td>
    </tr>
  </tbody>
</table>

2. CSS样式

保证表格布局规整,默认隐藏内容行,添加交互反馈:

.accordion-table {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0;
  font-size: 16px;
  text-align: left;
}

.accordion-table th,
.accordion-table td {
  padding: 12px 15px;
  border-bottom: 1px solid #ddd;
}

.accordion-table thead tr {
  background-color: #f5f5f5;
  font-weight: bold;
}

.accordion-header {
  cursor: pointer;
  transition: background-color 0.2s;
}

.accordion-header:hover {
  background-color: #fafafa;
}

.accordion-content {
  display: none;
  background-color: #fff;
}

.accordion-content.active {
  display: table-row;
}

.content-inner {
  padding: 10px 0;
}

3. JS交互逻辑

实现点击触发行切换内容显示状态,可选单开模式(同一时间仅展开一个):

const accordionHeaders = document.querySelectorAll('.accordion-header');

accordionHeaders.forEach(header => {
  header.addEventListener('click', () => {
    const contentRow = header.nextElementSibling;
    contentRow.classList.toggle('active');
    
    // 注释掉下面这段即可开启多开模式
    accordionHeaders.forEach(otherHeader => {
      if (otherHeader !== header) {
        otherHeader.nextElementSibling.classList.remove('active');
      }
    });
  });
});

核心特性说明

  • 完全基于表格结构,垂直分区的排版和原生表格一致,无需额外布局兼容
  • 触发行自带hover反馈,提升用户感知
  • 支持单开/多开两种模式,通过注释JS代码即可切换
  • 内容行可自由填充任意HTML内容,格式化不受限制

内容的提问来源于stack exchange,提问作者TNS Monty

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 17:55:46