4
votes

Comment changer / remplacer la couleur par défaut d'une étiquette de commutateur dans Vuetify?

Comme vous pouvez le voir dans la documentation officielle de vuetify, les étiquettes des commutateurs ont leur propre couleur prédéfinie. Comment puis-je les remplacer pour obtenir du texte noir? Je passe le commutateur en tant que accessoire d'un composant global appelé structure de formulaire à un autre composant que j'ai nommé "Primary"

https://vuetifyjs.com/en/components/selection-controls

<v-switch v-if="externalSwitch" model="switch2":label="externalSwitchLabel"> 
</v-switch>

<v-layout v-for="info in information" :key="info.title">
  <v-flex>
    <form-structure :externalSwitchLabel="`${info.title}`" 
:externalSwitch="true" :hasSubTitle="true" :subTitle="`${info.status}`" 
:script="`${info.script}`"></form-structure>
  </v-flex>
</v-layout>


My array looks like this:

information : [
{title:"Something1, status:"active",script:"Hello"},
{title:"Something2", status:"in Progress" , script:"Ciao" }
]

My Css looks like this:
<style scoped>
.v-label.theme--light{
color: black
}
</style>


5 commentaires

Bonjour à nouveau, veuillez fournir un code essayé


Bonjour, je viens de mettre à jour la question et d'ajouter plus de détails.


Avez-vous essayé ce qui suit? .v-label.theme - light {couleur: noir! important; }


ouais je l'ai essayé, ça n'a pas fonctionné. Cela ne fonctionne que si je retire la portée de mon style, mais cela change toutes les étiquettes sur toutes les autres pages et sur chaque champ de texte également.


Consultez cette réponse pour comprendre pourquoi votre css ne fonctionne pas stackoverflow.com/a/50985784/1981247


5 Réponses :


1
votes

Vous pouvez utiliser l'accessoire color en lui donnant la valeur rgb ou hexadécimal comme suit:

<script src="https://cdn.jsdelivr.net/npm/babel-polyfill/dist/polyfill.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vuetify@1.4.0/dist/vuetify.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900|Material+Icons">
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/vuetify@1.4.0/dist/vuetify.min.css">
<div id="app">
  <v-app id="inspire">
    <v-container fluid px-0>
     
      <v-switch
        :label="`Switch 1: ${switch1.toString()}`"
        v-model="switch1"
                color="#f45525"
      ></v-switch>
       <v-switch
        :label="`Switch 2: ${switch2.toString()}`"
        v-model="switch2"
                color="rgb(0,150,45)"
      ></v-switch>
    </v-container>
  </v-app>
</div>
.v-input__slot .v-label{
color: black!important
}
new Vue({
  el: '#app',
  data () {
    return {
   
      switch1: true,
      switch2: true
    }
  }
})


5 commentaires

Merci pour l'aide, mais passer la couleur comme accessoire ne fonctionne pas non plus.


oh je vois, je voulais dire la couleur du texte lui-même donc dans ce cas ce serait "couleur du commutateur 1: vrai au noir" et non du commutateur lui-même.


désolé je t'ai mal compris, mais je cherche un moyen de résoudre ce problème


essayez la règle css que j'ai ajoutée dans ma réponse


Désolé mon frère mais ça n'aide pas non plus.



0
votes

Essayez ceci.

.v-input--is-label-active label {
    color: red !important;
}


0 commentaires

2
votes

J'ai essayé l'approche des emplacements et cela a fonctionné pour moi:

.input__label {
   color: black;
}

CSS ressemble à ceci:

<v-switch>
   <template v-slot:label>
      <span class="input__label">Label text</span>
   </template>
</v-switch>


0 commentaires

1
votes

Si vous ne souhaitez pas remplacer le style par défaut pour l'étiquette, vous pouvez passer un emplacement à v-switch avec l'élément de style souhaité.

Exemple:

.v-label-white {
  color: white;
  font-weight: bolder
}

Puis votre style:

<v-switch v-model="enableScreenshot" label="Enable Screenshot">
   <template v-slot:label>
      <span class="v-label-white">Enable Screenshot</span>
   </template>
</v-switch>


0 commentaires

0
votes

Il vous suffit de supprimer scoped du style:

<style>
.v-label.theme--light{
color: black
}
</style>

Cela signifie que le style sera appliqué globalement dans l'application.

p >


0 commentaires