修改scoped下的element的样式不生效的问题
项目中使用的是element的组件在使用tooltip/dialog组件/Cascader 级联选择器的时候,修改样式发现没有生效(动态添加组件的层级并不是在使用的地方,而是和我们的app是在同一层级的,所以直接scoped中改是不会生效的)
一、@import引入css
自定义一个公共的css配置文件,提前设置固定的css样式在使用@import引入使用
优点:这样的好处就是全局的样式不受当前组卷scoped的影响
缺点:如果在项目中多处使用,想要设置不同的样式的时候要添加不同的css类
<style lang="scss" scoped>
@import 'src/assets/css/defines.scss';
#oaHeader {
background: red;
}
</style>
二、样式区分写
可以在文件中添加两个style,一个添加scoped,一个不写,不写scoped的样式会作用到全局
<style lang="less" scoped>
.text {
color: red;
}
</style>
<style lang="less">
.tooltip-width {
max-width: 100px;
}
</style>
缺点:会影响到全局,干扰其他地方的样式
改进:在不写scoped的style中在使用一个组件最外层的类包裹一下
三、popper-class
<el-tooltip
popper-class="tooltip-width"
placement="top">
<span slot="content" class="tooltip-text">asdfasdfasdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</span>
<span class="text">tooltip</span>
</el-tooltip>
<style lang="less" scoped>
.tooltip-text {
max-width: 100px;
display: inline-block;
}
</style>
//如果修改小箭头的样式
.el-tooltip__popper[x-placement^=top] .popper__arrow:after{
border-top-color: #595959 !important;
}
注意:以上的方式均是在已经使用了/deep/和importent 不生效的情况下才想出的解决办法,
链接: https://blog.youkuaiyun.com/weixin_45634433/article/details/118975316.