css制作复杂表格
使用 CSS 制作复杂表格
表格结构设计
采用语义化的 HTML 结构,通过 <table>、<thead>、<tbody> 和 <tfoot> 标签组织表格内容。合并单元格使用 colspan 和 rowspan 属性实现跨列或跨行。

<table class="complex-table">
<thead>
<tr>
<th colspan="2">标题合并</th>
<th rowspan="2">纵向合并</th>
</tr>
<tr>
<th>子标题A</th>
<th>子标题B</th>
</tr>
</thead>
<tbody>
<tr>
<td>数据1</td>
<td>数据2</td>
<td>数据3</td>
</tr>
</tbody>
</table>
样式控制
通过 CSS 控制边框、间距和颜色,使用 border-collapse: collapse 消除默认间隙,nth-child() 伪类实现斑马纹效果。

.complex-table {
border-collapse: collapse;
width: 100%;
font-family: sans-serif;
}
.complex-table th, .complex-table td {
border: 1px solid #ddd;
padding: 8px 12px;
text-align: left;
}
.complex-table thead th {
background-color: #f2f2f2;
font-weight: bold;
}
.complex-table tbody tr:nth-child(even) {
background-color: #f9f9f9;
}
.complex-table tbody tr:hover {
background-color: #e6f7ff;
}
响应式处理
对于移动端,通过媒体查询将表格改为堆叠布局,使用 display: block 和伪元素显示表头标签。
@media (max-width: 600px) {
.complex-table,
.complex-table thead,
.complex-table tbody,
.complex-table th,
.complex-table td,
.complex-table tr {
display: block;
}
.complex-table td::before {
content: attr(data-label);
font-weight: bold;
display: inline-block;
width: 120px;
}
}
高级交互效果
添加过渡动画和固定表头,提升用户体验。使用 position: sticky 固定表头,transition 实现平滑悬停效果。
.complex-table {
overflow-y: auto;
max-height: 400px;
}
.complex-table thead th {
position: sticky;
top: 0;
z-index: 10;
}
.complex-table tbody tr {
transition: background-color 0.3s ease;
}
注意事项
- 避免过度嵌套表格结构,会影响渲染性能
- 合并单元格时注意保持数据对齐
- 响应式设计中需要为移动端单独准备数据标签
- 固定表头功能在部分旧浏览器可能需要 polyfill






