el-table 滚动条样式修改 背景色修改

el-table滚动条样式

el-table滚动条样式

根据产品需求,针对表格的样式需要设置滚动条,使用的elementUI表格,但是滚动条样式达不到要求的样子,所以针对表格的样式进行修改。这是最终要实现的效果:
在这里插入图片描述

说明

针对不同的版本可能会存在样式不生效的情况,所以对版本信息和测试浏览器进行说明:

  1. 版本号:vue@2.5.15 、element-ui@2.15.14 ;
  2. 浏览器:谷歌、Edge、QQ浏览器;

demo使用原生的html+cdn方式编写。

背景色和边框样式

代码片端.

 /* 1.el-table背景色+边框 */
.el-table,
.el-table th,
.el-table td,
.el-table tr {
    color: #fff;
    overflow: auto;
    border: 1px solid #1f507c !important;
    background-color: transparent !important;
}
.el-table--border::after,
.el-table--group::after,
.el-table::before {
    background-color: transparent !important;
}

滚动条样式

代码片端.

 /* 2.el-table滚动条样式 */
/* 滚动条轨道宽度17会出现间隙,直接body撑满 */
.el-table__body-wrapper,
.el-table__body {
    /* 权重不够,需要增加important */
    width: 100% !important;
}
/* 滚动条大小设置  */
.el-table__body-wrapper::-webkit-scrollbar {
    width: 10px;
    height: 10px;
    border-radius: 10px;
    background-color: #1f507c !important;
}

/* 滚动条滑块样式设置 */
.el-table__body-wrapper::-webkit-scrollbar-thumb {
    width: 10px;
    border-radius: 10px;
    background-color: skyblue;
}
/* body宽度撑满后,表头会出现错位,增加下面样式覆盖gutter原始的宽度17 */
.el-table__header colgroup col[name='gutter'],
.el-table__body-wrapper colgroup col[name='gutter'] {
    display: table-cell;
}
.el-table th.gutter,
colgroup.gutter {
    width: 10px !important;
    border-left: 1px solid transparent !important;
}
/* 隐藏表头最后一个单元格的右边框 */
.has-gutter th.el-table__cell:nth-last-child(2) {
    /* 权重不够,需要增加important */
    border-right: none !important;
}

整体demo

代码片端.

<!DOCTYPE html>
<html lang="zh-cn">
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <!-- 引入样式 -->
        <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css" />
        <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.5.15/vue.js"></script>
        <!-- 引入组件库 -->
        <script src="https://unpkg.com/element-ui/lib/index.js"></script>
        <style>
            html {
                background-color: #172242;
            }
            /* 1.el-table背景色+边框 */
            .el-table,
            .el-table th,
            .el-table td,
            .el-table tr {
                color: #fff;
                overflow: auto;
                border: 1px solid #1f507c !important;
                background-color: transparent !important;
            }
            .el-table--border::after,
            .el-table--group::after,
            .el-table::before {
                background-color: transparent !important;
            }
            /* 2.el-table滚动条样式 */
            /* 滚动条轨道宽度17会出现间隙,直接body撑满 */
            .el-table__body-wrapper,
            .el-table__body {
                /* 权重不够,需要增加important */
                width: 100% !important;
            }
            /* 滚动条大小设置  */
            .el-table__body-wrapper::-webkit-scrollbar {
                width: 10px;
                height: 10px;
                border-radius: 10px;
                background-color: #1f507c !important;
            }

            /* 滚动条滑块样式设置 */
            .el-table__body-wrapper::-webkit-scrollbar-thumb {
                width: 10px;
                border-radius: 10px;
                background-color: skyblue;
            }
            /* body宽度撑满后,表头会出现错位,增加下面样式覆盖gutter原始的宽度17 */
            .el-table__header colgroup col[name='gutter'],
            .el-table__body-wrapper colgroup col[name='gutter'] {
                display: table-cell;
            }
            .el-table th.gutter,
            colgroup.gutter {
                width: 10px !important;
                border-left: 1px solid transparent !important;
            }
            /* 隐藏表头最后一个单元格的右边框 */
            .has-gutter th.el-table__cell:nth-last-child(2) {
                /* 权重不够,需要增加important */
                border-right: none !important;
            }
        </style>
        <title>Document</title>
    </head>

    <body>
        <div id="app" style="height: 300px">
            <el-table
                :data="tableData"
                style="width: 100%"
                highlight-current-row
                border
                height="100%"
            >
                <el-table-column align="center" prop="date" label="日期"></el-table-column>
                <el-table-column align="center" prop="name" label="姓名"></el-table-column>
                <el-table-column align="center" prop="address" label="地址"></el-table-column>
            </el-table>
        </div>
        <script>
            var Main = {
                data() {
                    return {
                        tableData: [
                            {
                                date: '2016-05-02',
                                name: '王小虎',
                                address: '上海市普陀区金沙江路 1518 弄',
                            },
                            {
                                date: '2016-05-04',
                                name: '王小虎',
                                address: '上海市普陀区金沙江路 1517 弄',
                            },
                            {
                                date: '2016-05-01',
                                name: '王小虎',
                                address: '上海市普陀区金沙江路 1519 弄',
                            },
                            {
                                date: '2016-05-03',
                                name: '王小虎',
                                address: '上海市普陀区金沙江路 1516 弄',
                            },
                            {
                                date: '2016-05-02',
                                name: '王小虎',
                                address: '上海市普陀区金沙江路 1518 弄',
                            },
                            {
                                date: '2016-05-04',
                                name: '王小虎',
                                address: '上海市普陀区金沙江路 1517 弄',
                            },
                            {
                                date: '2016-05-01',
                                name: '王小虎',
                                address: '上海市普陀区金沙江路 1519 弄',
                            },
                            {
                                date: '2016-05-03',
                                name: '王小虎',
                                address: '上海市普陀区金沙江路 1516 弄',
                            },
                        ],
                    };
                },
            };
            var Ctor = Vue.extend(Main);
            new Ctor().$mount('#app');
        </script>
    </body>
</html>

需要注意的点:

  1. 如果是使用的vue组件,子组件内部设置样式需要增加样式穿透,如sass使用 #child_class /deep/
    .el-table{};
  2. 表格外层元素设置高度,再在el-table添加height=“100%”,当纵向显示的数据超出高度时就可以实现滚动条;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值