CSS中 通过自定义属性(变量)动态修改元素样式(以 el

编程入门 行业动态 更新时间:2024-10-11 13:19:03

CSS中 通过<a href=https://www.elefans.com/category/jswz/34/1771438.html style=自定义属性(变量)动态修改元素样式(以 el"/>

CSS中 通过自定义属性(变量)动态修改元素样式(以 el

传送门:CSS中 自定义属性(变量)详解

1. 需求及解决方案

需求:通常我们动态修改 div 元素的样式,使用 :style 和 :class 即可;但想要动态修改 如:Element-ui 中输入框(input)组件的字体颜色时,由于 el-input 的样式嵌套很深,需要修改的实际是 .el-input__inner 这个样式类的 color,但我们在 HTML 中没法直接拿到这个类名。

解决方案及相关步骤:通过 CSS 中的变量(自定义属性) 结合样式穿透实现;

为对应的 CSS 类引入变量 --inputColor;

/deep/ .el-input__inner {color: var(--inputColor); // 使用css变量 注意变量前需要加 --
}

声明变量颜色 colorVal 如: red,并在需要修改的地方,为 --inputColor 变量赋值;

data (){return {colorVal: 'red',}
}
<el-input v-model="inputVal" :style="{ '--inputColor': colorVal}"></el-input>

最后,动态 js 修改 colorVal 即可;

this.colorVal = '#b2fdd2';

注意:–inputColor 是 css 变量,帮助引导的,colorVal 才是设置的样式值;

2. 完整代码及效果

<template><div class="home"><el-input:style="{ '--inputColor': colorVal}" v-model="inputVal"@input="valInput"></el-input></div>
</template><script>
export default {data() {return {inputVal:'',colorVal: 'red',};},methods:{valInput(){let r = Math.floor(Math.random() * 256),g = Math.floor(Math.random() * 256),b = Math.floor(Math.random() * 256);// 设置随机色this.colorVal = '#' + r.toString(16) + g.toString(16) + b.toString(16);}},
};
</script><style lang="scss" scoped>
.home{width: 200px;::v-deep .el-input__inner {color: var(--inputColor);}
}
</style>

效果:

更多推荐

CSS中 通过自定义属性(变量)动态修改元素样式(以 el

本文发布于:2023-12-05 17:29:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1664843.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:自定义   变量   样式   属性   元素

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!