微信中的自定义-ui组件样式隔离修改(图)

2022-08-24
来源:网络整理

使用框架开发微信小程序时,用到了uni-ui的uni-。由于需要修改表头的背景颜色,所以我使用微信开发工具中的调试工具检查元素得到它的名字:

尝试直接在页面中修改样式:

.uni-table-th { background-color: #ddd; }

结果无效。所以尝试使用深度选择器

::v-deep .uni-table-th { background-color: #ddd; }

仍然无效。然后查询微信平台官方开发文档得知微信中的组件有组件样式隔离,即自定义组件的样式只受自定义组件wxss影响。

此时如果要影响其他页面上组件的样式,需要给受影响的组件添加选项:

options: { styleIsolation: 'shared', // }

表示页面wxss的样式会影响自定义组件,自定义组件wxss中指定的样式也会影响页面和其他设置-或的自定义组件。 (此选项在插件中不可用。)

根据上面的设置,我们可以在想要改变uni-ui组件的组件上加上这个选项,样式就可以正常修改了。

但其实还有一种更方便的修改方法:直接全局修改。当然,最好添加容易避免污染其他组件的样式,除非这是通用样式。

因为我的更改适用于该类型的所有组件,所以我选择全局更改。

具体来说,我的做法是在全局样式文件.scss中添加我要修改的样式:

.uni-table-scroll { &.table--border { border: 1px solid $border-color; border-bottom: 1px solid $border-color; } .uni-table-tr:nth-child(odd) { background-color: $table-odd-td-bgcolor; } }

然后在uni.scss中导入:

@import "@/static/scss/common/global.scss";

总结

如果你发现直接修改uni-ui或者其他第三方组件的样式无效,有两种方法可以尝试:

在中加入:''微信开发小程序没有看到组件,达到解除风格隔离的目的;全局修改。

分享