Vuetify RadioGroup全宽

时间:2018-11-29 08:44:04

标签: vue.js vuejs2 vuetify.js

我有一个看起来像这样的vuejs应用

<div id="app">
  <v-app>
    <v-content>
      <v-container fluid>
        <v-radio-group v-for="i in list" :key="i">
          <v-layout row wrap>
            <v-flex md4>
              <v-radio label="Test 1" value="a"></v-radio>
            </v-flex>
            <v-flex md4>
              <v-radio label="Test 2" value="b"></v-radio>
            </v-flex>
            <v-flex md4>
              <v-radio label="Test 3" value="c"></v-radio>
            </v-flex>
          </v-layout>
        </v-radio-group>
      </v-container>
    </v-content>
  </v-app>
</div>

https://codepen.io/anon/pen/NEErNz

问题是我想充分利用收音机,但是由vuetify生成的css类v-input__control阻止了这一点。 您有什么想法我可以解决这个问题吗?

Wrong -> v-input__control -> width: auto
Correct -> v-input__control -> width: 100%

4 个答案:

答案 0 :(得分:1)

仅应用样式来覆盖现有的类

<style>
     .v-input__control {
        width: 100% !important
      }
      .v-label {
        width: 100% !important
      }
</style>

答案 1 :(得分:1)

Rithy遮篷几乎是正确的,但是有两个问题。 CSS代码会影响应用程序上的每个控件(并且没有作用域),并且v-input__contol类不能由css或您的css处理器访问,因为它的作用域位于控制组组件内。所以:

将班级添加到您的广播组:

<v-radio-group class="radio-group-full-width" v-for="i in list" :key="i">

然后添加css样式(如果不使用SCSS,请参见@JakesInTheSoup答案)

<style scoped lang="scss">
 .radio-group-full-width {
   >>>.v-input__control {
     width: 100%
   }
 }
</style>

“ >>>”很重要,因为它允许CSS访问嵌入式组件范围

答案 2 :(得分:1)

@Nacho Moco的答案对我的括号稍作修改,对我有用:

<style scoped>
 .radio-group-full-width >>>.v-input__control {
     width: 100%
 }
</style>

答案 3 :(得分:0)

我通过Traxo的评论实现了这一目标。这是我使用Vuetify v1.5.11的布局:

sudo docker system prune -af

还有我的CSS:

<v-radio-group v-model="selectedDate" class="radio-container d-flex">
  <v-radio
    class="radio-item"
    color="primary"
    v-for="item of items"
    :key="item.id"
    :value="item"
    :label="'This is an individual item!'"
  ></v-radio>
</v-radio-group>