Vue中scoped样式穿透 修改第三方框架样式

Posted Frazier_梁超

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue中scoped样式穿透 修改第三方框架样式相关的知识,希望对你有一定的参考价值。

相信很多小伙伴在开发中都遇到过,使用框架开发,但是有地的放的样式跟设计图不一样的时候,那么我们如何修改框架的样式呢?

1、什么是scoped?它的作用是什么?

在vue组件样式中使用scoped,相当于将样式私有化,即样式只用于与当前组件。
通过该属性,可以使得组件之间的样式不互相污染。

2、为什么需要穿透scoped?

一般项目中会引用了第三方组件,需要根据需求在组件中局部修改第三方组件的样式,而又不想去除scoped属性造成组件之间的样式污染。就需要样式穿透啦

第一种:全局样式表进行样式覆盖

新建 global.css 文件,并在 main.js 中引入。 global.css 文件一般都放在 src->assets 静态资源文件夹下的 style 文件夹下

//在 main.js 的引用写法如下:
import "./assets/style/global.css";

第二种:使用 /deep/ 深度修改标签样式

找到需要修改的 ElementUI 标签的类名,然后在类名前加上 /deep/ ,可以强制修改默认样式。这种方式可以直接用到有 scoped 属性的 style 标签中。

// 修改选择框的默认宽度
/deep/ .el-cascader {
  width: 100%;
}

第三种:使用>>>

<style scoped>
    外层 >>> 第三方组件 {
        样式
    }
</style>

当然了还有很多方法,以上是常用的三种个人建议使用后两种

 

以上是关于Vue中scoped样式穿透 修改第三方框架样式的主要内容,如果未能解决你的问题,请参考以下文章

VUE: Scope模式下,修改Element ui样式

vue中修改第三方组件的样式并不造成污染

vue中修改第三方组件中的样式

vue3单页面引入公共的css,加了scoped但无法加deep,导致样式无法穿透,如何解决?

vue 修改样式添加!important不起作用怎么办?

[干货]关于vue3 SFC 范围内 scoped-styles 样式穿透