Penyelesaian untuk menggunakan nama yang ditakrifkan JS sebagai pembolehubah CSS dalam VueJS.
P粉333395496
P粉333395496 2023-08-03 20:20:26
0
1
660
<p>Saya menggunakan Vuetify yang mencipta pembolehubah CSS untuk setiap warna tema (seperti --v-theme-primary). Saya mahu dapat menetapkan warna kepada --v-theme-{something} dalam CSS dan mempunyai nilai {something} datang daripada JS. Contohnya: </p> <pre class="brush:js;toolbar:false;"><template> <div :class="$style['colored-text']">Asd</div> </template> <skrip lang="ts" persediaan> warna const = ref("utama") </skrip> <style lang="scss" modul> .colored-text { warna latar belakang: var(--v-tema-[[v-bind(warna)]]); } </style> </pra> <p> [[v-bind(color)]] ialah sintaks tidak sah, saya baru sahaja mengemukakannya untuk demonstrasi. Saya mahu dapat meletakkan nama warna atau sesuatu daripada rujukan warna di sana supaya saya boleh menggunakan var(--v-theme-{color}) dalam CSS di mana warna itu berasal dari JS. Dalam contoh, ia akan menjadi var(--v-theme-primary). <br /><br />Adakah anda mempunyai sebarang idea? Adakah pendekatan ini boleh dilaksanakan? </p><p><br /></p>
P粉333395496
P粉333395496

membalas semua(1)
P粉302160436

Anda boleh mencipta harta yang dikira untuk nilai CSS.

Anda juga boleh mengalih keluar :class="$style['colored-text']" dan menggunakan class="colored-text" secara terus.

<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 contoh

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan