修改elementUi默认样式不影响全局样式

1.vue scoped 深度作用选择器

希望 scoped 样式中的一个选择器能够作用得“更深”,例如影响子组件,可以使用 >>> 操作符:

.userInfo >>> .el-form-item__label
        font-size: $font-size-medium
        color: $color-mainFont
        font-weight: 500
        margin-bottom: 20px
        padding: 0

sass和less无法正确解析>>>,可以使用/deep/ 替换,同样可以有作用

<style lang="less" scoped>
.searchforminline-out {
/deep/ input{
width: 50px;
}
</style>

2.不太推荐的一种方法

定义一个含有scoped属性的style标签之外,再定义一个不含有scoped属性的style标签(个人建议使用第一种方法)

<style>
/* global styles */
</style>

<style scoped>
/* local styles */
</style>

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您想修改 ElementUI默认样式,可以使用 SCSS 变量或者覆盖样式。但是,如果您的样式不生效,可能是因为 CSS 的选择器优先级问题。 在 CSS 中,选择器的优先级是根据不同的选择器组合来计算的。通常来说,ID 选择器的优先级最高,其次是类选择器和属性选择器,最后是元素选择器。在 ElementUI 中,大部分的样式都是使用类选择器来设置的。 如果您想在修改 ElementUI 样式时优先级更高,可以添加 `!important` 来使样式生效。例如: ```css .el-button { background-color: red !important; } ``` 但是,使用 `!important` 会让样式变得难以维护和调试,因此建议尽量避免使用。如果您的样式没有生效,可以尝试使用 `deep` 关键字来加强选择器优先级。例如: ```css ::v-deep .el-button { background-color: red; } ``` 在这个例子中,`::v-deep` 是 Vue 提供的一种选择器,可以穿透子组件,加强选择器优先级。注意,`::v-deep` 只在 Vue 2.x 中可用,在 Vue 3.x 中已经被废弃,可以使用 `::v-slotted` 来代替。 另外,如果您使用的是 Vue CLI 3.x 或 4.x,可以在 `vue.config.js` 中配置 `css.loaderOptions` 来全局修改 ElementUI 样式。例如: ```js module.exports = { css: { loaderOptions: { scss: { additionalData: ` @import "~element-ui/packages/theme-chalk/src/common/var.scss"; @import "~element-ui/packages/theme-chalk/src/common/mixins.scss"; `, }, }, }, }; ``` 在这个例子中,我们通过 `additionalData` 导入了 ElementUI 的 SCSS 变量和混合,以便在自定义样式中使用。注意,需要安装 `sass-loader` 和 `sass` 才能使用 SCSS。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值