CSS表格是Web開發中常用的一種數據展示方式,但當表格數據較大時,用戶需要不斷進行滾動,使用起來并不方便。如何讓表格滾動時保持標題欄固定,同時也讓左側列保持固定?這里介紹一種解決方案——CSS表格凍結多行多列。
在CSS中,通過設置position:sticky屬性可以讓目標元素在特定位置固定,如設置th元素的position: sticky;top: 0;z-index: 2;left: 0;可以固定在表格的左上角。同時,利用CSS偽元素,可以將固定的th元素進行復制,并在表格的左側和上側進行重疊,形成多行多列的固定效果。
table { border-collapse: collapse; } th, td { border: 1px solid #ddd; padding: 8px; } th:first-child { position: sticky; top: 0; z-index: 2; left: 0; } tr:first-child th:not(:first-child)::before { content: ""; position: absolute; left: 0; border-right: 1px solid #ddd; height: 100%; z-index: -1; } tr:not(:first-child) th:first-child::before { content: ""; position: absolute; top: 0; border-bottom: 1px solid #ddd; width: 100%; z-index: -1; }
上述代碼中,通過設置th:first-child的position:sticky屬性實現了左上角的固定。通過設置偽元素::before生成的輔助元素,實現了表格左側和上側的重疊效果。其中,tr:first-child th:not(:first-child)::before代表生成第一列輔助元素,tr:not(:first-child) th:first-child::before代表生成第一行輔助元素。
通過以上設置,即可實現表格的多行多列凍結效果。在實際使用中,可以根據業務需求對CSS樣式進行修改,以適應不同的場景和需求。