是否可以在Vue中使用纯CSS变量,而不必链接任何样式表或使用SASS/POSTSS?不确定为什么我无法以最基本的形式实现这一点.

<template>
   <div id="test">
        TEST
    </div>
</template> 
<style scoped> 
   :root {
   --var-txt-color: #c1d32f;
   }

 #test {
 color: var(--var-txt-color);
  }
</style> 

推荐答案

由于样式表的属性为scoped,这将无法按预期工作.上述示例编译为:

[data-v-4cc5a608]:root {
  --var-txt-color: #f00;
}

而且,正如你们所理解的,它不会针对实际的:root个元素.

可以通过以下方式解决:

  • 此样式表未使用scoped属性.请注意,它可能会导致样式与:root元素的其他变量声明冲突.

  • 将当前组件的包装元素用作根.如果我们这样声明变量:

    .test {
      --var-txt-color: #c1d32f;
      color: var(--var-txt-color);
    }
    
    .test-child-node {
      background-color: var(--var-txt-color);
    }
    

然后,它可以为同一组件的其他元素重用变量.但是,如果是这样的话,在子组件中使用声明变量而不删除scoped是不可能的.

Vue.js相关问答推荐

VueI18n 无法读取或更改组合 API 中的区域设置

是否可以使用 Vuetify/VueJS 为轮播设置默认图像而不是第一个图像?

纵横比元素溢出容器

Vue Js Composition Api 未定义(读取名称)

Vue3如何将自定义事件绑定到路由视图中的特定组件?

VeeValidate 4 字段验证状态

如何 for each 用户分组聊天消息?

Vuelidate 判断true/false

在组件上的 Vue 3 中获取 URL 查询参数

从组件的 内的组件调用方法

未捕获的类型错误:无法读取未定义的属性initializeApp

eslint – 如何知道 defined定义规则的位置

将数据传递给另一条路由上的组件

Vue 和 TypeScript 所需的props

Vue 3 - 带有全局组件的无法解析组件

VueJS 使用 prop 作为数据属性值

Vuejs模板继承

基于媒体查询的vue绑定值

Vue js在列表中添加动态字段,删除和排序不起作用

如何在布局中使用组件?