elementUI默认样式修改不成功的问题

问题:

login.vue中引入<style lang="postcss" src="./login.css" scoped></style>

login.css中

.el-input__inner {
    background-color: rgba(255,255,255,.2);
}

设置el-input的样式没有效果。

解决方法:

是因为scoped的原因。去掉scoped就可以显示样式。

但此时会污染全局样式,所以将该样式放在控制全局样式的文件里(比如app.css)。

为了不让所有的el-input都变透明,所以给需要透明的el-input添加一个类lucencyInput

.lucencyInput .el-input__inner {
    background-color: rgba(255,255,255,.2);
}

 原因:

组件的scoped会给写的每一个样式添加一个唯一的过滤器[data-],对应的模板也会加一个data-属性,这样就保证了样式只对当前组件有效。

这样我们写的.el-input__inner会带一个过滤器,但是element组件中却没有,自然样式就不生效了。

ps:还有一种情况,像el-button这种,写在scoped的样式是生效的。因为el-button属于第一层,也会被当前组件加一个data-,

        而上面el-input__inner是属于el-input里面的类,当前组件只能给第一层el-input加一个data-,但是里层的相当于是子组件内部的东西了,是不会加data-的。

        (这里比较绕,可以打开浏览器,自己调试一下就明白了了)

原文地址:https://www.cnblogs.com/XHappyness/p/7686267.html