*初级小白*~ 2022-09-15 09:57 采纳率: 97.9%
浏览 91
已结题

如何用html+css实现table表格固定表头,表格既可以横向滚动也可以竖向滚动

如何用html+css实现table表格固定表头,且表格有分组,表格既可以横向滚动也可以竖向滚动
我自己写了一个,但是表头分组不固定,咋搞

img


<template>
  <div class="print">
    <button @click="print">打印</button>
  </div>
  <div ref="printHtml">
    <div class="wraper">
      <div class="container">
        <table>
          <thead>
            <tr>
              <th rowspan="2">序号</th>
              <th rowspan="2">标题1</th>
              <th colspan="2">标题2</th>
              <th rowspan="2">标题3</th>
              <th rowspan="2">标题3</th>
              <th rowspan="2">标题3</th>
              <th rowspan="2">标题3</th>
              <th rowspan="2">标题3</th>
              <th rowspan="2">标题3</th>
              <th rowspan="2">标题3</th>
              <th rowspan="2">标题3</th>
              <th rowspan="2">标题3</th>
              <th rowspan="2">标题3</th>
              <th rowspan="2">标题3</th>
            </tr>
            <tr>
              <th>a</th>
              <th>b</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>1</td>
              <td>内容1</td>
              <td colspan="2">内容2</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
            </tr>
            <tr>
              <td>2</td>
              <td>内容1</td>
              <td colspan="2">内容2</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
            </tr>
            <tr>
              <td>3</td>
              <td>内容1</td>
              <td colspan="2">内容2</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
            </tr>
            <tr>
              <td>4</td>
              <td>内容1</td>
              <td colspan="2">内容2</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
            </tr>
            <tr>
              <td>5</td>
              <td>内容1</td>
              <td colspan="2">内容2</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
            </tr>
            <tr>
              <td>5</td>
              <td>内容1</td>
              <td colspan="2">内容2</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
            </tr>
            <tr>
              <td>5</td>
              <td>内容1</td>
              <td colspan="2">内容2</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
            </tr>
            <tr>
              <td>5</td>
              <td>内容1</td>
              <td colspan="2">内容2</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
              <td>内容3</td>
            </tr>
          </tbody>
        </table>
      </div>

    </div>

  </div>
</template>

<script>
import { reactive, ref } from "vue";

export default {
  setup() {
    const printHtml = ref();
    const print = () => {
      let bodyHtml = window.document.body.innerHTML;
      window.document.body.innerHTML = printHtml.value.innerHTML;
      // console.log(printHtml.value);
      window.print();
      window.document.body.innerHTML = bodyHtml;
      window.location.reload();
    }
    return {
      print,
      printHtml,
    };
  },
};
</script>

<style lang="scss" scoped>
.container {
  width: 600px;
  height: 400px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  overflow: scroll;
}

table {
  table-layout: fixed;
  border: none;
  border-collapse: collapse;
  background: white;
  text-align: center;

  thead {
    tr {
      color: white;
      height: 70px;

      th {
        background-color: #CCE8EB;
        min-width: 100px;
        position: -webkit-sticky;
        position: sticky;
        top: 0;
        z-index: 3;
      }
    }
  }

  tbody {
    tr {
      height: 50px;
      color: green;

      td {
        min-width: 100px;
        position: -webkit-sticky;
        position: sticky;
      }

    }
  }

}
</style>

  • 写回答

4条回答 默认 最新

查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 9月23日
  • 已采纳回答 9月15日
  • 修改了问题 9月15日
  • 创建了问题 9月15日

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分