Lösung für die Verwendung von JS-definierten Namen als CSS-Variablen in VueJS.
P粉333395496
P粉333395496 2023-08-03 20:20:26
0
1
575
<p>Ich verwende Vuetify, das CSS-Variablen für jede Designfarbe erstellt (wie --v-theme-primary). Ich möchte in der Lage sein, die Farbe in CSS auf --v-theme-{something} zu setzen und den Wert von {something} von JS zu erhalten. Zum Beispiel: </p> <pre class="brush:js;toolbar:false;"><template> <div :class="$style['colored-text']">Asd</div> </template> <script lang="ts" setup> const color = ref("primär") </script> <style lang="scss" module> .colored-text { Hintergrundfarbe: var(--v-theme-[[v-bind(color)]]); } </style> </pre> <p> [[v-bind(color)]] ist eine ungültige Syntax, ich habe sie nur zur Demonstration aufgerufen. Ich möchte dort den Farbnamen oder etwas aus der Farbreferenz einfügen können, damit ich var(--v-theme-{color}) in CSS verwenden kann, wo die Farbe von JS kommt. Im Beispiel würde es zu var(--v-theme-primary) werden. <br /><br />Haben Sie irgendwelche Ideen? Ist dieser Ansatz machbar? </p><p><br /></p>
P粉333395496
P粉333395496

Antworte allen(1)
P粉302160436

你可以为CSS值创建一个计算属性。

你还可以移除 :class="$style['colored-text']",直接使用 class="colored-text"。

<template>
  <div class="colored-text">Asd</div>
</template>

<script lang="ts" setup>
  import { ref, computed } from 'vue'
  const color = ref("primary")
  const bgColor = computed(()=>`var(--v-theme-${color}`)
</script>

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

sfc example

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!