使用uniapp内置的swiper组件,我想修改样式,结果在调用组件的页面使用/deep/修改组件样式,代码如下:
/deep/ uni-swiper .uni-swiper-dot-active {
background-color: $public-color;
}
style上是加了scoped的。
在H5上没有问题,样式调整了,但是在小程序上,没有任何效果,还尝试了加important,外层单独写个class覆盖,都只在H5生效,小程序没有任何作用,这到底要怎么写才有用。总不能去component里面改源码,那要是我别的页面还要用这个组件,但是样式和这里又不一样,不就用不成了啊。求解。
silence_more
- 发布:2020-08-14 09:35
- 更新:2024-09-18 13:58
- 阅读:16508
不是楼上说的 important 的问题。
- 在页面中可以使用 deep 修改组件(自定义组件或内置组件)样式,成功与否看css样式权重,不一定需要 !important;
- 但是在自定义组件中使用 deep 修改样式将不会生效,使用 !important 也无济于事。
- 解决方法楼上已经有答案了,deep 规则不要放在自定义组件中,移到全局样式就可以。其实移动到自定义组件所在页面也就够了。
- 但是都要小心处理全局样式污染。比如可以给要修改样式的内置组件赋予一个全局唯一的类名。
你要修改的不是自己的组件吧,是要修改小程序内置组件?
-
回复 silence_more: 小程序的内置组件样式不推荐修改,虽然网上有一些hack的微信小程序修复方式,但并不能兼容其他的小程序,且由于是非公开的接口,内部实现细节更改后很可能导致失效
2020-08-17 14:23
laravuel
哎,没办法,只能这样了,这设计太曹丹了。。 。
2022-10-22 09:07
lalalacp3
确实是的,::v-deep写在页面最上层修复了
2022-12-05 09:14