如何固定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的实现方法 (▽`)

谢谢观看(/≧▽≦)/

目录
相关文章
|
10天前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
22 6
|
28天前
|
移动开发 前端开发 JavaScript
[HTML、CSS]细节与使用经验
本文总结了前端开发中的一些重要细节和技巧,包括CSS选择器、定位、层级、全局属性、滚轮控制、轮播等。作者以纯文字形式记录,便于读者使用<kbd>Ctrl + F</kbd>快速查找相关内容。文章还提供了示例代码,帮助读者更好地理解和应用这些知识点。
42 1
[HTML、CSS]细节与使用经验
|
29天前
|
移动开发 前端开发 JavaScript
[HTML、CSS]知识点
本文涵盖前端知识点扩展、HTML标签(如video、input、canvas)、datalist和details标签的使用方法,以及CSS布局技巧(如margin、overflow: hidden和动态height)。文章旨在分享作者的学习经验和实用技巧。
30 1
[HTML、CSS]知识点
|
24天前
|
移动开发 JavaScript 前端开发
html table+css实现可编辑表格的示例代码
html table+css实现可编辑表格的示例代码
48 12
|
20天前
|
前端开发 JavaScript
用HTML CSS JS打造企业级官网 —— 源码直接可用
必看!用HTML+CSS+JS打造企业级官网-源码直接可用,文章代码仅用于学习,禁止用于商业
84 1
|
25天前
|
前端开发 JavaScript 安全
HTML+CSS+JS密码灯登录表单
通过结合使用HTML、CSS和JavaScript,我们创建了一个带有密码强度指示器的登录表单。这不仅提高了用户体验,还帮助用户创建更安全的密码。希望本文的详细介绍和代码示例能帮助您在实际项目中实现类似功能,提升网站的安全性和用户友好性。
39 3
|
1月前
|
前端开发 JavaScript UED
HTML 表格4
HTML 表格标签用于创建和布局表格。主要标签包括:`&lt;table&gt;` 定义表格,`&lt;th&gt;` 定义表头,`&lt;tr&gt;` 定义行,`&lt;td&gt;` 定义单元格,`&lt;caption&gt;` 定义标题,`&lt;colgroup&gt;` 和 `&lt;col&gt;` 定义列属性,`&lt;thead&gt;`、`&lt;tbody&gt;` 和 `&lt;tfoot&gt;` 分别定义表格的页眉、主体和页脚。
HTML 表格2
本示例展示了如何使用 HTML 的 `&lt;table&gt;` 标签和 `border` 属性创建一个带有边框的简单表格。表格包含两行两列,每行有两个单元格,通过设置 `border=&quot;1&quot;` 显示边框。