原生table标签在tbody添加滚动条

less

     .table-wrapper {
        width: 100%;
        height: calc(~"100% - 30px");
        table {
          width: 100%;
          height: 100%;
          border-collapse: collapse;
          tr {
            width: 100%;
            display: block;
            td, th  {
              padding: 5px;
            }
          }
          thead tr {
            line-height: 20px;
            th {
              padding: 0 10px;
            }
          }
          tbody tr:nth-child(2n + 1) {
            background: rgba(255,255,255,.2);
          }
        }
        thead {
          display: block;
          height: 30px; /* 控制最大高度和出现滚动条的条件 */
        }
        tbody {
          display: block;
          height: calc(~"100% - 30px");
          overflow-y: auto; /* 控制垂直滚动条出现 */
        }
      }

html

 <div class="cardContent table-wrapper" id="tableDom">
 </div>

js 动态创建表格数据

// 表格数据
export const tabeColumn = [
  {label: '终端号', width: '80px', code: 'number'},
  {label: '经度', width: '50px', code: 'lon'},
  {label: '纬度', width: '50px', code: 'lat'},
  {label: '时间', width: 'calc(100% - 180px)', code: 'time'},
]
export const tableData = [
  {number: 'NF90034', lon: 16.2529, lat: 39.5420, time: '2023-12-22'},
  {number: 'NF90034', lon: 16.2529, lat: 39.5420, time: '2023-12-22'},
  {number: 'NF90034', lon: 16.2529, lat: 39.5420, time: '2023-12-22'},
  {number: 'NF90034', lon: 16.2529, lat: 39.5420, time: '2023-12-22'},
  {number: 'NF90034', lon: 16.2529, lat: 39.5420, time: '2023-12-22'},
  {number: 'NF90034', lon: 16.2529, lat: 39.5420, time: '2023-12-22'},
  {number: 'NF90034', lon: 16.2529, lat: 39.5420, time: '2023-12-22'},
  {number: 'NF90034', lon: 16.2529, lat: 39.5420, time: '2023-12-22'},
  {number: 'NF90034', lon: 16.2529, lat: 39.5420, time: '2023-12-22'},
  {number: 'NF90034', lon: 16.2529, lat: 39.5420, time: '2023-12-22'},
  {number: 'NF90034', lon: 16.2529, lat: 39.5420, time: '2023-12-22'},
  {number: 'NF90034', lon: 16.2529, lat: 39.5420, time: '2023-12-22'},
  {number: 'NF90034', lon: 16.2529, lat: 39.5420, time: '2023-12-22'},
  {number: 'NF90034', lon: 16.2529, lat: 39.5420, time: '2023-12-22'},
  {number: 'NF90034', lon: 16.2529, lat: 39.5420, time: '2023-12-22'},
]

createTableDom()

// 创建list内容
  function createTableDom () {
    const tableData = tableData;

    const tableColumn = tabeColumn
    const tableDom = document.getElementById('tableDom');
    let tHeadeR = ''
    tableColumn.forEach(col => {
      let style = 'width:' + col.width
      tHeadeR += `<th style="${style}">${col.label}</th>`
    })
    let tbodyR = ''
    tableData.forEach(item => {
      let s = ''
      tableColumn.forEach(col => {
        let style = 'width:' + col.width
        s += `<td style="${style}">${item[col.code]}</td>`
      })
      tbodyR += `<tr>${s}</tr>`
    });
    tableDom.innerHTML = `
    <table><thead><tr>${tHeadeR}</tr></thead><tbody>${tbodyR}</tbody></table>
    `;
  }
  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值