如题所示。
想通过主题色去控制阴影颜色透明度,scss
提供的rgba($color, $alpha)
就可以实现
但是--app-color: v-bind("appInfo.color"); $appColor: rgba(var(--app-color), 0.45)
无法生效,仅可不使用变量$appColor: rgba(#f36, 0.45)
才可生效
原因是rgba()
无法对变量进行二次编译
请问该如何实现对一个动态颜色的透明度计算呢?
<template>
<div class="root">测试文本</div>
</template>
<script setup lang="ts">
const appInfo = { color: '#f36' }
</script>
<style lang="scss" scoped>
.root {
--app-color: #f36;
--app-color: v-bind('appInfo.color');
// $appColor: rgba(var(--app-color), 0.85); // ×
$appColor: rgba(#f36, 0.85); // √
width: 400px;
height: 200px;
display: flex;
justify-content: center;
align-items: center;
border: 1px solid #f5f5f5;
color: $appColor;
}
</style>
原生 css 有 rgba 函数: