温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

vue无法覆盖vant的UI组件的样式怎么解决

发布时间:2022-04-25 11:55:29 来源:亿速云 阅读:256 作者:iii 栏目:开发技术

这篇“vue无法覆盖vant的UI组件的样式怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue无法覆盖vant的UI组件的样式怎么解决”文章吧。

无法覆盖vant的UI组件的样式

有时候UI组件提供的默认的样式不能满足项目的需要,就需要我们对它的样式进行修改,但是发现加了scoped后修改的样式不起作用。

解决方法

使用深度选择器,将scoped样式中的选择器“深入”,即影响子组件

<style scoped>
  .a >>> .b { /* ... */ }
</style>

以上的代码会编译成:

.a[data-v-f3f3eg9] .b { /* ... */ }

注意:如果你使用了Less或Sass等预处理器,可能无法>>>正确解析。

在这些情况下,您可以使用组合/deep/或::v-deep组合 - 两者都是别名,>>>并且工作完全相同。

使用Less或Sass等预处理器的写法如下:

.van-radio {
  /deep/ .van-radio__label {
    width: 500px;
  }
}

使用样式穿透,强制覆盖Vant原样式

使用Vant组件的时候,我们会发现在某些场合组件的原样式不符合我们的需求,这个时候我们就需要重写组件的原样式。

这个是组件的原样式

vue无法覆盖vant的UI组件的样式怎么解决

因为style标签添加了scope属性,scope会保护样式不被污染,这里要让我们自己的样式生效就必须使用样式穿透,由父样式穿透到子样式:

.w-all >>> .van-field__control{text-align: right;}

在浏览器可以看到

vue无法覆盖vant的UI组件的样式怎么解决

  • text-align:left那一栏已经被一条横线划掉,取而代之的是:

vue无法覆盖vant的UI组件的样式怎么解决

而这个,就是因为使用了样式穿透强制覆盖了原样式,从而实现我们需要的样式效果。

以上就是关于“vue无法覆盖vant的UI组件的样式怎么解决”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI