vue의 Table 구성 요소에서 스크롤 막대 스타일을 수정하는 방법 | element-ui

문제 설명

Table 테이블에서는 내용이 컨테이너를 초과할 때 스크롤 바가 나타나게 되는데, elemnt-ui에서 제공하는 스크롤 바가 요구 사항을 충족하지 못하는 경우가 있으므로 CSS 의사 클래스를 통해 스크롤 바를 사용자 정의할 수 있습니다.

스크롤 막대는 두 부분으로 구성됩니다.

  • 슬라이더: 미끄러질 수 있는 부분.
  • Track: 스크롤 막대의 트랙, 즉 슬라이더의 트랙입니다. 일반적으로 슬라이더는 트랙보다 어둡습니다.

해결책

1. 스크롤 막대의 CSS 스타일 구성 요소:

::-webkit-scrollbar         滚动条整体部分
::-webkit-scrollbar-thumb   滚动条里面的滑块,能向上向下移动(或往左往右移动,取决于是垂直滚动条还是水平滚动条)
::-webkit-scrollbar-track   滚动条的轨道(里面装有Thumb)
::-webkit-scrollbar-button  滚动条的轨道的两端按钮,允许通过点击微调小方块的位置。
::-webkit-scrollbar-track-piece  内层轨道,滚动条中间部分(除去)
::-webkit-scrollbar-corner  边角,即两个滚动条的交汇处
::-webkit-resizer  两个滚动条的交汇处上用于通过拖动调整元素大小的小控件

2. 단일 스크롤 막대의 스타일 수정

<style lang="scss" scoped>
.el-table {
  /deep/ .el-table__body-wrapper::-webkit-scrollbar {
      width: 10px; /*滚动条宽度*/
      height: 10px; /*滚动条高度*/
  }
  /*定义滚动条轨道 内阴影+圆角*/
  /deep/ .el-table__body-wrapper::-webkit-scrollbar-track {
      box-shadow: 0px 1px 3px #071e4a inset; /*滚动条的背景区域的内阴影*/
      border-radius: 10px; /*滚动条的背景区域的圆角*/
      background-color: #071e4a; /*滚动条的背景颜色*/
  }
  /*定义滑块 内阴影+圆角*/
  /deep/ .el-table__body-wrapper::-webkit-scrollbar-thumb {
      box-shadow: 0px 1px 3px #00a0e9 inset; /*滚动条的内阴影*/
      border-radius: 10px; /*滚动条的圆角*/
      background-color: #00a0e9; /*滚动条的背景颜色*/
  }
}
</style>

3. 전역 스크롤 막대 스타일 수정(권장)

HTML 코드

<template>
  <div class="wrap">
    <el-table
      :data="tableData"
      height="300"
      border>
      <el-table-column prop="date" label="日期" width="250"></el-table-column>
      <el-table-column prop="name" label="姓名" width="250"></el-table-column>
      <el-table-column prop="address" label="地址"></el-table-column>
    </el-table>
    <hr/>
    <div style="height:300px;overflow:auto;">
      <div style="height:500px;width:100%;"></div>
    </div>
  </div>
</template>

<script>
export default {
  data() { 
    return {
      tableData: [
        {
          date: '2016-05-03',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }, {
          date: '2016-05-02',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }, {
          date: '2016-05-04',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }, {
          date: '2016-05-01',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }, {
          date: '2016-05-08',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }, {
          date: '2016-05-06',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }, {
          date: '2016-05-07',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }
      ]
    } 
  }, 
}
</script> 

CSS 코드

index.html의 CSS 또는 app.vue의 CSS 스타일에 다음 코드를 삽입하세요.

<style lang="scss">
::-webkit-scrollbar {
  width: 6px;
  height: 8px;
  background-color: #ebeef5;
}
::-webkit-scrollbar-thumb {
  box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);
  -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);
  background-color: #ccc;
}
::-webkit-scrollbar-track{
  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
  border-radius: 3px;
  background: rgba(255, 255, 255, 1);
}
</style>

지금까지 Table 구성 요소의 스크롤 막대 스타일을 수정하는 문제를 해결했습니다. 여기, 이 방법의 정리를 완료할 수 있도록 기사를 작성해주신 @复从 님에게도 감사의 말씀 을 전하고 싶습니다 . 정말 감사합니다.

Supongo que te gusta

Origin blog.csdn.net/weixin_54558746/article/details/130054327
Recomendado
Clasificación