如何固定html表格头部,用css样式即可实现,操作简便、代码简单

简介: 如何固定html表格头部,用css样式即可实现,操作简便、代码简单

首先创建一个表格

表头:

<div class="table_box">
  <table cellspacing="0" cellpadding="0">
    <thead>
      <tr>
        <th><input type="checkbox" class="thItem" onclick="fn(this)"></th>
        <th>姓名</th>
        <th>岗位工资</th>
        <th>岗位级别</th>
        <th>性别</th>
        <th>生日</th>
        <th>手机号</th>
        <th>身份证号</th>
        <th>项目名称</th>
        <th>公司名称</th>
        <th>政治面貌</th>
        <th>籍贯</th>
        <th>学历</th>
        <th>创建时间</th>
        <th>员工状态</th>
        <th>用工形式</th>
        <th>现合同到期时间</th>
        <th>现合同期限</th>
        <th>银行卡卡号</th>
        <th>工资卡开户行</th>
        <th>操作</th>
      </tr>
    </thead>
    <tbody id="tb">
    </tbody> 
    </table>
</div>

tbody部分直接使用js,意思是使用循环在表格的主体部分加入了表格标签,不用大量的去复制空格子(其实就是up比较懒 (o▽`o) )

<script>
      let inp = document.getElementById("tb")
      let str = ""
      for(let i = 0 ; i < 20 ; i++){
        str += `<tr>
          <td><input type="checkbox" class="thItem""></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
        </tr>`
      }
      inp.innerHTML = str
    </script>

添加基本的css样式:

<style>
      .table_box{
        width: 1632px;
        overflow: scroll;
      }
      table{
        width: 3000px;
      }
      td,th{
        border: 1px solid #777;
        width: 200px;
      }
      td{
        height: 30px;
        text-align: center;
      }
    </style>

效果:

下面添加css样式,给需要固定的地方加粘性定位sticky

使用伪类选择器进行选定元素:

/* 第一列 */
      thead>tr>th:first-child{
        position: sticky;
        left: 0;
        background-color: rgb(240, 240, 240);
      }
      tbody>tr>td:first-child{
        position: sticky;
        left: 0;
        background-color: rgb(240, 240, 240);
      }
      /* 第二列 */
      thead>tr>th:nth-child(2){
        position: sticky;
        left: 144px;
        background-color: rgb(240, 240, 240);
      }
      tbody>tr>td:nth-child(2){
        position: sticky;
        left: 144px;
        background-color: rgb(240, 240, 240);
      }
    /* 最后一列 */
      thead>tr>th:last-child{
        position: sticky;
        right: 0;
        background-color: rgb(240, 240, 240);
      }
      tbody>tr>td:last-child{
        position: sticky;
        right: 0;
        background-color: rgb(240, 240, 240);
      }

效果:

完整代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title></title>
    <style>
      .table_box{
        width: 1632px;
        overflow: scroll;
      }
      table{
        width: 3000px;
      }
      td,th{
        border: 1px solid #777;
        width: 200px;
      }
      td{
        height: 30px;
        text-align: center;
      }
      /* 第一列 */
      thead>tr>th:first-child{
        position: sticky;
        left: 0;
        background-color: rgb(240, 240, 240);
      }
      tbody>tr>td:first-child{
        position: sticky;
        left: 0;
        background-color: rgb(240, 240, 240);
      }
      /* 第二列 */
      thead>tr>th:nth-child(2){
        position: sticky;
        left: 144px;
        background-color: rgb(240, 240, 240);
      }
      tbody>tr>td:nth-child(2){
        position: sticky;
        left: 144px;
        background-color: rgb(240, 240, 240);
      }
      /* 最后一列 */
      thead>tr>th:last-child{
        position: sticky;
        right: 0;
        background-color: rgb(240, 240, 240);
      }
      tbody>tr>td:last-child{
        position: sticky;
        right: 0;
        background-color: rgb(240, 240, 240);
      }
    </style>
  </head>
  <body>
    <div class="table_box">
      <table cellspacing="0" cellpadding="0">
        <thead>
          <tr>
            <th><input type="checkbox" class="thItem" onclick="fn(this)"></th>
            <th>姓名</th>
            <th>岗位工资</th>
            <th>岗位级别</th>
            <th>性别</th>
            <th>生日</th>
            <th>手机号</th>
            <th>身份证号</th>
            <th>项目名称</th>
            <th>公司名称</th>
            <th>政治面貌</th>
            <th>籍贯</th>
            <th>学历</th>
            <th>创建时间</th>
            <th>员工状态</th>
            <th>用工形式</th>
            <th>现合同到期时间</th>
            <th>现合同期限</th>
            <th>银行卡卡号</th>
            <th>工资卡开户行</th>
            <th>操作</th>
          </tr>
        </thead>
        <tbody id="tb">
        </tbody>
      </table>
    </div>
    <script>
      let inp = document.getElementById("tb")
      let str = ""
      for(let i = 0 ; i < 20 ; i++){
        str += `<tr>
          <td><input type="checkbox" class="thItem""></td>
          <td>张三</td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td>备注</td>
        </tr>`
      }
      inp.innerHTML = str
    </script>
  </body>
</html>

此文所实现的效果为纯css,适合新手,操作简单,如果使用js实现此效果的话会更加美观、简便,以后有机会还会一同分享有关js的实现方法 (▽`)

谢谢观看(/≧▽≦)/

目录
相关文章
|
30天前
|
存储 数据采集 JSON
你知道吗?html_table可以提取的不止是表格
`html_table` 是一种强大的工具,不仅用于HTML表格解析,还在现代爬虫技术中发挥重要作用。它可以提取、整合、分析和传输多种类型的关键数据。本文从四个方面探讨其功能:关键数据提取(如财经网站的股票信息)、零散信息整合(如电商网站的产品详情)、数据对比分析(如手机性能参数对比)和数据存储与传输(如转换为CSV/JSON格式)。通过Python代码示例,展示了如何利用代理IP、多线程和自定义请求头提高爬虫效率,实现对复杂网页数据的全面抓取和利用。
38 12
你知道吗?html_table可以提取的不止是表格
|
19天前
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
101 21
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
17天前
|
前端开发 JavaScript
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
44 14
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
16天前
css3 svg制作404页面动画效果HTML源码
css3 svg制作404页面动画效果HTML源码
59 34
|
20天前
html+js+css实现的建筑方块立体数字时钟源码
html+js+css实现的建筑方块立体数字时钟源码
67 33
|
21天前
html实现的文字发散动画效果代码
html实现的文字发散动画效果代码
67 30
|
21天前
|
移动开发 前端开发 HTML5
基于HTML5+Canvas绘制的鼠标跟随三角形碎片光标动画代码
基于HTML5+Canvas绘制的鼠标跟随三角形碎片光标动画特效代码,很有意思,一团三角形碎片跟随鼠标的移动,不冗长、不笨重,反而有一种很轻盈的感觉,非常不错
56 29
|
19天前
css3实现3D数字时钟滚动特效代码
css3实现3D数字时钟滚动特效代码
214 18
|
2月前
一个好看的小时钟html+js+css源码
一个好看的小时钟html+js+css源码
114 24