VUE项目中对伪类动态设置样式

vue项目中动态改变css样式,通过style写css样式的方式:style="{color:blue}"这种,但是可能会存在一个问题,这个style只是针对当前节点的样式进行修改,我如果还有其他节点样式或者伪类,这时候vue的style方式就没办法实现了(可能是我未了解到),所以我通过动态设置css的方式去控制css样式

以动态设置一个color为例

在css相关节点中初始化一个变量样式

--my-color:blue;

在对应class中使用这个变量

.elementStyle{
    color: var(--my-color);
}

这个时候elementStyle节点的color颜色已经是由--my-color这个变量控制了,我们只需要在使用的时候去赋值就可以

<div>
    <span class="elementStyle" :style="setStyle()">我是一个节点</span>
</div>
···
##下面是一个vue的方法
setStyle(){
    return {
        '--my-color': 'red'
    }
}
···
##下面是css样式
<style lang="scss" scoped>
    --my-color:blue;
    
    .elementStyle{
        color: var(--my-color);
    }
</style>

这样这个节点样式就会从蓝色变成红色,这个方式多用于vue的一些伪类情况,我的VUE项目里各种伪类如果需要动态设置样式的话,就会通过这种方式

备注:最好这个颜色的设置在当前节点或者父节点,不然可能继承不到这个自己设置的样式

posted @ 2021-04-25 18:15  wangchangzhi  阅读(4128)  评论(0编辑  收藏  举报