vue中css变量的使用

1、在css中使用变量

(1)css中声明变量

--color:red

(2)使用变量

color:var(--color)   //color:red获取到全局声明变量值为red

2、使用vue中的变量

(1) 在html标签中

<span :style="{'--color':变量color}" ref='devcolor' />

data中声明变量color

data() {
  return {
    color: red,
  };
}

或者使用this.$refs.devcolor.style.setProperty('--color',this.color)

(2) css中使用color变量

color:var(--color)  //使用变量color:red

3、使用v-bing()

https://cn.vuejs.org/api/sfc-css-features.html#v-bind-in-css

单文件组件的 <style> 标签支持使用 v-bind CSS 函数将 CSS 的值链接到动态的组件状态:

<template>
  <div class="text">hello</div>
</template>

<script>
export default {
  data() {
    return {
      color: 'red'
    }
  }
}
</script>

<style>
.text {
  color: v-bind(color);
}
</style>

这个语法同样也适用于 script-setup,且支持 JavaScript 表达式 (需要用引号包裹起来):

<script setup>
import { ref } from 'vue'
const theme = ref({
    color: 'red',
})
</script>

<template>
  <p>hello</p>
</template>

<style scoped>
p {
  color: v-bind('theme.color');
}
</style>

实际的值会被编译成哈希化的 CSS 自定义属性,因此 CSS 本身仍然是静态的。自定义属性会通过内联样式的方式应用到组件的根元素上,并且在源值变更的时候响应式地更新。

posted @ 2023-03-18 21:05  槑孒  阅读(1109)  评论(0编辑  收藏  举报