技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营

赞助商

分类目录

赞助商

最新文章

搜索

纯CSS固定Table表格第一行(表头)、最后一行以及第一列

作者:admin    时间:2023-3-31 9:52:55    浏览:

关于table表格固定行、列的实例,前面介绍过一些。

本文要介绍的实例,又进了一步,要求同时固定Table表格的第一行(表头)、最后一行以及第一列。

效果如图

demodownload

实例介绍

本实例是纯CSS实现,可水平、垂直滚动table表格。水平滚动时,固定表格第一列;垂直滚动时,固定表格第一行和最后一个行。

HTML代码

HTML代码结构比较简单,可分为三个部分理解。

  • <thead></thead> 为表格表头(第一行)
  • <tfoot></tfoot> 为表格最后一行
  • <tbody></tbody> 为表格第一列

代码如下:

<table>
  <thead>
    <tr>
      <th>name</th>
      <th>#</th>
      <th>position</th>
      <th>games</th>
      <th>goals</th>
      <th>assists</th>
    </tr>
  </thead>
  <tfoot>
    <tr>
      <th>name</th>
      <th>#</th>
      <th>position</th>
      <th>games</th>
      <th>goals</th>
      <th>assists</th>
    </tr>
  </tfoot>
  <tbody>
    <tr>
      <td>morgan brian</td>
      <td>6</td>
      <td>midfielder</td>
      <td>83</td>
      <td>6</td>
      <td>11</td>
    </tr>
    <tr>
      <td>abby dahlkemper</td>
      <td>7</td>
      <td>defender</td>
      <td>47</td>
      <td>0</td>
      <td>3</td>
    </tr>
  </tbody>
</table>

CSS代码

table {
  border-collapse: collapse; 
  font-family: helvetica;
  caption-side: top;
  text-transform: capitalize;
}

td, th {
border:  1px solid;
padding: 10px;
min-width: 200px;
background: white;
box-sizing: border-box;
text-align: left;
}

th {
  box-shadow: 0 0 0 1px black;
}

thead th, 
tfoot th {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 2;
  background: hsl(20, 50%, 70%);
}

thead th:first-child,
tfoot th:first-child {
  left: 0;
  z-index: 3;
}

tfoot {
  position: -webkit-sticky;
  bottom: 0;
  z-index: 2;
}

tfoot th {
  position: sticky;
  bottom: 0;
  z-index: 2;
  background: hsl(20, 50%, 70%);
}

tfoot td:first-child {
  z-index: 3;
}

tbody {
  overflow: scroll;
  height: 200px;
}

tr > :first-child {
  position: -webkit-sticky;
  position: sticky; 
  background: hsl(180, 50%, 70%);
  left: 0; 
}

固定表格行(列)的关键代码是position: sticky;这个属性,它声明该位置是粘性的,即是固定的。

代码中我们看到thead thtfoot th都有该属性声明,thead为第一行,tfoot为最后一行。

tr > :first-child 为第一列,它同样声明了position: sticky;属性。

tbody为表格内容行,它定义了高度为200px:height: 200px;,同时,它声明了overflow: scroll;属性,意思是溢出内容滚动显示。

总结

本文介绍了如何用纯CSS固定Table表格第一行(表头)、最后一行以及第一列,代码比较简单易理解,主要是使用了CSS的粘性属性position: sticky;

您可能对以下文章也感兴趣

相关文章

标签: table  
x
  • 站长推荐
/* 左侧显示文章内容目录 */