是否可以在 Vue 中使用纯 CSS 变量而无需链接任何样式表或使用 SASS/PostCSS?不确定为什么我不能让它以最基本的形式工作。
<template>
<div id="test">
TEST
</div>
</template>
<style scoped>
:root {
--var-txt-color: #c1d32f;
}
#test {
color: var(--var-txt-color);
}
</style>
原文由 Ben Casalino 发布,翻译遵循 CC BY-SA 4.0 许可协议
由于样式表的
scoped
属性,这不会按预期工作。上面的例子编译成:而且,如您所知,它不会针对实际
:root
元素。可以通过以下方式解决:
不使用
scoped
此样式表的属性。请注意,它可能会导致样式与:root
元素的其他变量声明发生冲突。使用当前组件的包装元素作为根。如果我们这样声明变量:
然后它将可以为同一组件的其他元素重用变量。但是,如果是这种情况,如果不删除
scoped
,就无法在子组件中使用声明的变量。