表格是 Web 应用程序中显示结构化数据的基础。添加可滚动标题和冻结(粘性)列等功能可以使表格更加用户友好。在本文中,我们将探索如何使用纯 HTML 和 CSS 创建具有粘性标题和冻结左列的表格。
要查看正在运行的代码,请查看 CodePen 上的这个实时示例:
此代码示例使用 JS 类来制作表格。您可以使用您选择的任何框架或库来复制此内容。
我们使用一个带有 的简单表结构。对于 header 和
;对于行。该表被包裹在一个 div 中以实现可滚动性。代码如下:<div> <h2> CSS for Sticky Header and Frozen Column </h2> <p>Here’s the CSS that makes the magic happen:<br> </p> <pre class="brush:php;toolbar:false">/* General styles */ body { font-family: Arial, sans-serif; } /* Scrollable container */ .table-container { border: 1px solid #e5e7eb; border-bottom: none; overflow: auto; /* Enables both horizontal and vertical scrolling */ height: 400px; /* Limits table height for vertical scrolling */ } /* Table layout */ .table { border-collapse: collapse; width: 100%; table-layout: fixed; /* Ensures consistent column widths */ } /* Table cells and headers */ .table th, .table td { padding: 8px; text-align: center; border: 1px solid #e5e7eb; } /* Frozen first column */ .table td:nth-child(1), .table th:nth-child(1) { background: red; /* Highlighted background for frozen column */ position: sticky; left: 0; /* Ensures the column stays on the left */ z-index: 5; /* Keeps the column above other cells */ color: white; } /* Add higher z-index for header */ .table th:nth-child(1) { z-index: 6; } /* Sticky header */ .table th { background-color: #1e3a8a; color: white; font-size: 14px; font-weight: bold; position: sticky; top: 0; /* Makes the header stick to the top */ z-index: 2; /* Keeps the header above the table body */ } /* Styling for table body */ .table td { font-size: 14px; color: #6b7280; } /* Zebra striping for rows */ .table tr:nth-child(odd) { background-color: #f9fafb; } /* Hover effect for rows */ .table tr:hover { background-color: rgba(14, 116, 144, 0.1); } /* No data row styling */ .no-data { text-align: center; font-size: 14px; color: #9ca3af; }
.table-container 类添加了 Overflow: auto 以启用水平和垂直滚动。 height: 400px 属性限制了表格的高度,确保较大数据集的垂直滚动。
position: Sticky 和 top: 0 属性应用于第
第一列使用
冻结列的背景颜色设置为红色,并使用白色文本以获得更好的可见性。您可以自定义它以符合您的设计偏好。
当您垂直滚动时,位置:粘性标题保留在 .table-container 的顶部。
水平滚动时,最左边的列保持固定,产生冻结列效果。
溢出:自动和位置:粘性的组合确保表格在两个轴上保持功能性和用户友好性。
响应式调整:
使用媒体查询调整较小屏幕的列宽和表格布局。
使用 JavaScript 动态获取和填充较大数据集的行。
使用 JavaScript 添加行单击事件、过滤或排序以增强功能。
使用标准
以上是使用 HTML 和 CSS 创建带有粘性标题和冻结列的可滚动表的详细内容。更多信息请关注PHP中文网其他相关文章!