如何在vuetify中更改/覆盖开关标签的默认颜色?

时间:2019-01-25 21:34:51

标签: vue.js vuetify.js nuxt.js

从vuetify的官方文档中可以看到,开关的标签具有自己的预定义颜色。如何覆盖它们以获得黑色文字?我将作为道具的开关从称为表单结构的全局组件传递到另一个名为“ 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 个答案:

答案 0 :(得分:2)

我尝试了插槽方法,它对我有用:

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

CSS看起来像这样:

.input__label {
   color: black;
}

答案 1 :(得分:1)

您可以使用colorrgb值来使用hexadecimal道具,如下所示:

new Vue({
  el: '#app',
  data () {
    return {
   
      switch1: true,
      switch2: true
    }
  }
})
.v-input__slot .v-label{
color: black!important
}
<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>

答案 2 :(得分:1)

如果您不想覆盖标签的默认样式,则可以将所需样式元素传递到v-switch插槽中。

示例:

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

那么您的风格:

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

答案 3 :(得分:0)

尝试一下。

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

答案 4 :(得分:0)

您只需要从样式中删除作用域

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

这意味着样式将在应用程序中全局应用。