vue3+ElementPlus+Table+Fixed属性导致行背景颜色失效

1.修改表格偶数行多选框背景颜色(静态)

:deep(
    .el-table__body-wrapper tr:nth-child(even) td.el-table-fixed-column--left
  ) {
  background: #1d2745;
}

2.修改表格偶数行背景颜色(静态)

:deep(
    .el-table__body-wrapper tr:nth-child(even) td.el-table-fixed-column--right
  ) {
  background: #1d2745;
}

3.动态控制背景颜色

watch(dataTheme, newValue => {
  const rootStyle = document.documentElement.style;
  if (newValue) {
    rootStyle.setProperty("--fixed-column-left-even-bg", "#1d2745");
    rootStyle.setProperty("--fixed-column-left-odd-bg", "#101836");
    rootStyle.setProperty("--fixed-column-right-even-bg", "#1d2745");
  } else {
    rootStyle.setProperty("--fixed-column-left-even-bg", "transparent");
    rootStyle.setProperty("--fixed-column-left-odd-bg", "transparent");
    rootStyle.setProperty("--fixed-column-right-even-bg", "transparent");
  }
});



:deep(
    .el-table__body-wrapper tr:nth-child(even) td.el-table-fixed-column--left
  ) {
  background: var(--fixed-column-left-even-bg, #1d2745);
}

:deep(
    .el-table__body-wrapper tr:nth-child(odd) td.el-table-fixed-column--left
  ) {
  background: var(--fixed-column-left-odd-bg, #101836);
}

:deep(
    .el-table__body-wrapper tr:nth-child(even) td.el-table-fixed-column--right
  ) {
  background: var(--fixed-column-right-even-bg, #1d2745);
}

### 解决 `el-table` 组件中 `fixed` 属性失效的问题 当遇到 `el-table` 的 `fixed` 属性导致样式错乱或功能异常的情况时,可以尝试以下几种解决方案: #### 方案一:调用 `doLayout()` 方法 在获取到表格的数据之后,通过 Vue 实例访问表格组件并调用其内置的方法来重新计算布局。这有助于修复由于数据变化引起的固定列显示问题。 ```javascript this.$nextTick(() => { this.$refs.multipleTable.doLayout(); }); ``` 此操作应在确保 DOM 已更新的情况下执,因此通常放在异步请求完成后的回调函数里[^4]。 #### 方案二:调整 CSS 样式 如果上述方法未能解决问题,则可以通过自定义 CSS 来强制设定 `.el-table__fixed` 和 `.el-table__fixed-right` 类的高度为 100%,从而保证固定的侧边栏能够正确跟随父容器的高度变化。 ```css .table-fixed { /deep/ .el-table__fixed, /deep/ .el-table__fixed-right { height: 100% !important; } } ``` 需要注意的是 `/deep/` 是用于穿透 scoped 样式的特殊语法,在某些版本的 Webpack 或其他构建工具中可能需要替换为 `>>>` 或者移除它取决于具体的配置环境。 #### 方案三:处理指针事件冲突 对于因鼠标交互引发的问题(如X轴滚动条无法正常工作),可通过修改特定类名下的 CSS 设置,允许子元素接收点击和其他输入动作的同时阻止外部干扰。 ```css .el-table__fixed, .el-table__fixed-right { pointer-events: none; td { pointer-events: auto; } } ``` 这段代码使得只有单元格内的内容可被选中和触发相应为,而不会影响整个固定区域外层的为[^3]。 综上所述,针对不同场景下可能出现的具体表现形式采取相应的措施往往能有效改善由 `fixed` 引起的各种视觉及功能性缺陷。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值