vue组件利用css var(--变量)实现动态修改样式

1、简介:var() 函数用于插入自定义的属性值,如果一个属性值在多处被使用,该方法非常适用。

2、在css中定义变量用法:

<style>
:root {
  --main-bg-color: coral;  
}

#div1 {
  background-color: var(--main-bg-color);
  padding: 5px;  
}

#div2 {
  background-color: var(--main-bg-color);
  padding: 5px;
}

#div3 {
  background-color: var(--main-bg-color);
  padding: 5px;
}

3、在Vue中使用

<template>
    <div id="test">
        <div class="one-item" :style="{'--oneItemHeight': oneItemHeight}"></div>
        <div class="tow-item"></div>
        <div class="three-item"></div>
    </div>
</template>
    
<script lang="ts">
import {  ref } from "vue";

export default defineComponent({
    name: "Test",
    setup(props, context) {
        let oneItemHeight = ref('200px')

        return {
            oneItemHeight
        }
    },
});
</script>
    
<style scoped lang="scss">
#test {
    width: 100%;
    height: 100%;
    div {
        width: 300px;
        height: 100px;
    }
    .one-item {
        background-color: #CC3333;
        height: var(--oneItemHeight);
    }
    .tow-item {
        background-color: #CCCCCC;
    }
    .three-item {
        background-color: #003366;
    }
}
</style>

补充:在data里面定义一个变量然后给定一个值,后期修改这个值之后,所有依赖这个变量的css样式都会被响应式地修改。css用var()函数来使用这个变量,变量前要加--

 

posted @ 2022-08-11 14:40  zigood  阅读(6374)  评论(0编辑  收藏  举报