最直接有效的方式是使用 box-shadow 属性,可选择为整个表格(通过父容器)或每个单元格添加阴影。推荐将 box-shadow 应用于父级容器以实现整体卡片效果,或结合 border-collapse: separate 与 border-spacing 为每个单元格独立添加阴影,以增强层次感和视觉独立性。

CSS表格要添加阴影效果,最直接有效的方式是利用
box-shadow
<table>
<td>
<th>
要为CSS表格添加阴影,我们主要依赖
box-shadow
最常见的两种做法是:
为整个表格添加阴影(通常包裹在一个 div
HTML 结构:
立即学习“前端免费学习笔记(深入)”;
<div class="table-container">
<table>
<thead>
<tr>
<th>项目</th>
<th>描述</th>
<th>状态</th>
</tr>
</thead>
<tbody>
<tr>
<td>任务A</td>
<td>完成需求分析</td>
<td>进行中</td>
</tr>
<tr>
<td>任务B</td>
<td>开发模块X</td>
<td>待开始</td>
</tr>
</tbody>
</table>
</div>CSS 样式:
.table-container {
/* 给容器添加阴影,而不是直接给 table */
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* 水平偏移 0, 垂直偏移 4px, 模糊半径 8px, 颜色半透明黑 */
border-radius: 8px; /* 让阴影边缘看起来更柔和 */
overflow: hidden; /* 确保内容不会超出圆角边框 */
margin: 20px; /* 留出空间让阴影显示 */
background-color: #fff; /* 背景色,确保阴影对比度 */
}
/* 基础表格样式,确保表格外观整洁 */
.table-container table {
width: 100%;
border-collapse: collapse; /* 单元格边框合并 */
}
.table-container th,
.table-container td {
padding: 12px 15px;
text-align: left;
border-bottom: 1px solid #ddd;
}
.table-container th {
background-color: #f2f2f2;
color: #333;
}这里我更倾向于将
box-shadow
<table>
div.table-container
overflow: hidden;
<table>
为表格的每个单元格 (<td>
<th>
HTML 结构同上。
CSS 样式:
table {
width: 100%;
border-collapse: separate; /* 关键:不合并边框,这样单元格之间才有空隙来显示阴影 */
border-spacing: 0 8px; /* 增加行之间的间距,让阴影有空间显示 */
margin: 20px 0;
}
th, td {
padding: 12px 15px;
text-align: left;
background-color: #fff; /* 单元格背景色 */
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08); /* 独立的单元格阴影 */
border-radius: 5px; /* 单元格圆角 */
}
th {
background-color: #e0e0e0; /* 表头背景色稍深 */
color: #333;
font-weight: bold;
}
/* 调整单元格内部的边框,以防需要 */
td + td, th + th {
margin-left: 8px; /* 单元格之间增加横向间距 */
}
/* 移除默认的底部边框,因为阴影已经提供了视觉分隔 */
tr:not(:last-child) td {
border-bottom: none;
}这种方式下,
border-collapse: separate;
border-spacing
box-shadow
在实际项目中,我个人更倾向于根据具体的设计需求来选择。如果只是想让整个表格作为一个“卡片”浮现,那么第一种方法足够了。但如果需要表格内部的每个数据项都显得独立且有层次感,第二种方法会更合适。
<table>
box-shadow
这确实是一个很多人初次尝试时会遇到的“坑”。直觉上,我们可能会觉得给
<table>
box-shadow
主要原因在于
<table>
border-collapse
border-collapse: collapse;
box-shadow
<table>
阴影的裁剪问题: 即使你不设置
border-collapse: collapse;
border-collapse: separate;
<table>
<table>
border-radius
视觉上的局限性: 想象一下,一个表格的阴影只出现在最外层,而内部的行和列之间却没有视觉上的分隔或深度感。这通常不是设计师想要的“表格阴影效果”。我们通常希望阴影能增强表格的层次感,或者让每个数据块看起来更独立。直接给
<table>
所以,通常我们会选择将
box-shadow
<table>
<td>
<th>
要实现单个表格单元格的独立阴影效果,核心在于让每个单元格都能独立地渲染其
box-shadow
border-collapse
border-spacing
关键属性:border-collapse: separate;
border-collapse
separate
box-shadow
collapse
设置单元格间距:border-spacing
border-spacing
border-spacing: 0 8px;
为 <td>
<th>
box-shadow
<td>
<th>
box-shadow
/* 确保表格设置了正确的边框模型和间距 */
table {
width: 100%;
border-collapse: separate; /* 允许单元格独立渲染 */
border-spacing: 0 10px; /* 增加行间距,让阴影有空间 */
margin: 20px 0; /* 整个表格的外部间距 */
}
/* 单元格样式 */
th, td {
padding: 12px 15px;
text-align: left;
background-color: #fff; /* 单元格背景色,确保阴影对比度 */
border-radius: 6px; /* 单元格圆角,让阴影边缘更柔和 */
box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1); /* 核心:独立阴影 */
}
/* 优化表头样式 */
th {
background-color: #f0f0f0;
color: #333;
font-weight: bold;
}
/* 调整列间距 */
td + td, th + th {
margin-left: 10px; /* 通过 margin 模拟列间距,或者在 td/th 上加 padding-right/left */
/* 注意:td/th 默认是 table-cell,margin 对它们不生效,这里用 padding-right/left 更合适 */
/* 或者,更简单的方法是让 border-spacing 同时也处理列间距,例如 border-spacing: 10px 10px; */
}
/* 示例:调整列间距的更稳妥方式 */
table {
border-spacing: 10px 10px; /* 同时处理行和列的间距 */
}
th, td {
/* ... 其他样式不变 ... */
margin-left: 0; /* 移除之前尝试的 margin-left */
}通过
border-spacing: 10px 10px;
box-shadow
在为表格添加阴影效果时,选择包裹式阴影(将
box-shadow
box-shadow
<td>
<th>
包裹式阴影(应用于父容器 div
何时选择:
box-shadow
border-radius
优点: 简洁、实现简单、整体感强、易于与页面其他卡片式组件风格统一。
缺点: 无法为表格内部的单个单元格提供深度感,缺乏对内部数据项的强调能力。
单元格独立阴影(应用于 <td>
<th>
何时选择:
:hover
优点: 视觉效果更丰富、立体感强、可强调单个数据单元、更强的交互潜力。
缺点: 实现相对复杂(需要调整
border-collapse
border-spacing
总结来说, 如果你想要一个简洁、统一的表格外观,让表格作为一个整体在页面中浮现,那么包裹式阴影是首选。如果你希望表格的每个数据单元都具有独立的视觉焦点和深度感,提供更强的交互性和现代感,那么单元格独立阴影会是更好的选择。我通常会先从包裹式阴影开始,如果设计要求更高层次的细节,再考虑单元格独立阴影。
以上就是CSS表格阴影效果怎么添加_CSS表格阴影效果添加指南的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号