Vue自定义组件中使用CSS变量设置样式?

  在 Vue 自定义组件中使用 CSS 变量来设置样式,你可以通过在组件的样式中使用 var(--variable-name) 来引用 CSS 变量。然后,在组件的根元素或具体的元素上,使用 :style 绑定来动态设置 CSS 变量的值。以下是一个示例代码。

子组件 (CustomComponent.vue)

html 复制代码
<template>
  <div :style="{ '--bg-color': backgroundColor }">
    <slot></slot>
  </div>
</template>

<script>
export default {
  props: {
    backgroundColor: {
      type: String,
      default: 'white' // 默认背景色为白色
    }
  }
}
</script>

<style scoped>
/* 组件样式 */
div {
  padding: 20px;
  border: 1px solid #ccc;
  background-color: var(--bg-color); /* 使用 CSS 变量设置背景色 */
}
</style>

  在这个示例中,我们在子组件的样式中定义了一个名为 --bg-color 的 CSS 变量,并在组件的根元素中使用它来设置背景色。然后,我们在组件的 backgroundColor prop 中接收父组件传递过来的背景色值,并将其动态设置为 CSS 变量 --bg-color 的值。

父组件

html 复制代码
<template>
  <div>
    <custom-component :background-color="bgColor">
      <h1>Custom Component with Dynamic Background Color</h1>
      <p>This is a custom component with dynamic background color.</p>
    </custom-component>
    <button @click="changeColor">Change Background Color</button>
  </div>
</template>

<script>
import CustomComponent from './CustomComponent.vue';

export default {
  components: {
    CustomComponent
  },
  data() {
    return {
      bgColor: 'lightblue'
    };
  },
  methods: {
    changeColor() {
      this.bgColor = 'lightgreen'; // 将背景色改为 lightgreen
    }
  }
}
</script>

  在这个示例中,我们将父组件中的 bgColor 数据通过 background-color prop 传递给子组件,子组件将其作为 CSS 变量 --bg-color 的值来设置背景色。这样,通过修改 bgColor 数据,你可以动态改变子组件的背景色。

相关推荐
kyriewen2 小时前
我装了30多个Skill,给AI安排了8个岗位
前端·javascript·ai编程
风骏时光牛马3 小时前
大模型落地实践中的技术选型思路与方案对比
前端
IT_陈寒3 小时前
Vite打包时的静态资源坑,我帮你踩过了
前端·人工智能·后端
默_笙5 小时前
🔥 让 AI 帮我写完整个 Next.js 博客:框架就是 AI 的"上下文 buff"
前端·javascript
牧艺5 小时前
登录页还在用渐变?我一口气做了 5 个能摸的背景动效:吹蒲公英、滴墨染水、点熔岩闷裂
前端·canvas·交互设计
陆枫Larry5 小时前
状态机简介
前端
陆枫Larry5 小时前
一次登录问题排查:接口没错,错的是旧业务逻辑
前端
小小小小宇5 小时前
大模型打分与采样原理,以及 Pi Agent 核心原理
前端
一位正在转型AI全栈的前端工程师6 小时前
AI 全栈学习之旅 -Week 5:RAG 知识库问答系统:从零到生产级部署的全栈实践总结
前端·python
OpenTiny社区6 小时前
从流式消息到多会话:TinyRobot Kit 如何组织 AI 对话数据层
vue.js