Vue如何覆盖element-ui的css样式

Posted

技术标签:

【中文标题】Vue如何覆盖element-ui的css样式【英文标题】:Vue how to override css styles for element-ui 【发布时间】:2021-08-09 11:14:51 【问题描述】:

我正在尝试从 element-ui 覆盖输入框的背景颜色 但从来没有工作过

<template>
<el-input v-model="form.text" type="text" clearable></el-input>
</template

<style lang="stylus" scoped>

.el-input__inner 
    background-color #f4f4f4

</style>

根据我从谷歌收集的信息

chrome dev tool snapshot

【问题讨论】:

尝试不使用scoped 属性 as @PierreSaid ,scoped 对你的 css 有一些神奇的作用,可以将它限定为组件,但你不希望这样,你想在没有范围的情况下对其进行样式化 谢谢各位,这已经困扰了我好几个小时了! @KeithNicholas 这会为整个应用程序全局更改 elementUI 输入,而不仅仅是在您的组件中。如果这是有意的,我宁愿将这些更改放在单独的 main.css 文件中,而不是将它们隐藏在组件样式标记中。如果打算仅为该组件更改此输入框,则必须保留 scoped 并覆盖原始 .el-input__inner 类的特异性,例如通过 !important! 或加倍 (.el-input__inner.el-input__inner)。跨度> 如果你想使用范围样式最合适的方式来做到这一点,我们使用深度选择器:***.com/a/57704482/575468 【参考方案1】:

第一个选项: 尝试覆盖

.el-input__inner  
    background-color: #f4f4f4 !important;

第二个选项: 创建一个单独的 css 文件,在 element-ui 之后加载。

【讨论】:

【参考方案2】:
    在插件文件夹中打开 element.js。 在 element-plus 之后添加导入样式,如下所示:

import ElementPlus from "element-plus";
import "../element-variables.scss";
import "../assets/styles/global.scss"; // our custom styles

export default (app) => 
  app.use(ElementPlus);
;

【讨论】:

以上是关于Vue如何覆盖element-ui的css样式的主要内容,如果未能解决你的问题,请参考以下文章

覆盖element-ui原生样式

vue系列---vue项目如何使用element-ui?

vuejs的组件化开发中,要怎么自定义class,覆盖原有的css样式

VUE仿造element-ui el-tabs标签页选项卡样式

Vue - 我如何设置 Element-UI 数据表的样式?

element-ui+vue-cli3.0系列问题三:el-tooltip实现多行,单行文本溢出省略号处理