vuetify.js v选择最小高度限制?

时间:2018-11-18 16:58:13

标签: css vue.js vuetify.js

从下面可以看到,我正在尝试减小v-select元素的高度,但似乎可以设置的最小高度存在限制。即在height = 40之后,进一步降低高度似乎不再有效。无论如何,有没有超出这个限制的地方,所以我可以缩小这个元素?我需要这个,因为我需要将其放入相对较小的div中。预先感谢-

new Vue({
  el: "#app",
  data: {
    years: [2015, 2016, 2017, 2018]
  }
})
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vuetify/1.3.7/vuetify.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/vuetify/1.3.7/vuetify.min.css">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">

<div id="app">
<v-app>
  <v-layout row>
      <v-select
        label="height=80"
        outline
        height="80"
        :items="years">
      </v-select>
      <v-select
        label="height=60"
        outline
        height="60"
        :items="years">
      </v-select>
      <v-select
        label="height=40"
        outline
        height="40"
        :items="years">
        </v-select>
      <v-select
        label="height=20"
        outline
        height="20"
        :items="years">
      </v-select>
  </v-layout>
</v-app>
</div>

4 个答案:

答案 0 :(得分:2)

min-height的{​​{1}}是v-select,由以下CSS规则定义:

56px

例如通过设置来覆盖它:

     .v-text-field--box .v-input__slot, .v-text-field--outline .v-input__slot{
       min-height:56px;
     }

但是结果不是很完美,并且内容没有正确对齐,为了解决这一问题,我们将为以下规则添加以下属性:

  .v-text-field--box .v-input__slot, .v-text-field--outline .v-input__slot{
   min-height: auto!important;
  }

  display: flex!important;
  align-items: center!importan
new Vue({
  el: "#app",
  data: {
    years: [2015, 2016, 2017, 2018]
  }
})
.v-text-field--box .v-input__slot,
.v-text-field--outline .v-input__slot {
  min-height: auto!important;
  display: flex!important;
  align-items: center!important;
}

答案 1 :(得分:0)

我正在使用vuetify 1.5,但接受的答案对我不起作用,但是如果您希望将身高设为32px,则可以这样做:

.v-text-field.v-text-field--enclosed .v-text-field__details, 
.v-text-field.v-text-field--enclosed > .v-input__control > .v-input__slot {
        margin: 0;
        max-height: 32px;
        min-height: 32px !important;
       display: flex!important;
       align-items: center!important
}

答案 2 :(得分:0)

我认为最好的做法是覆盖默认变量,在 API 文档中检查您需要哪一个(有最小高度、填充等...):

https://vuetifyjs.com/en/api/v-select/#sass-variables

有关 Vuetify 变量的一般信息,请参阅官方文档:

https://vuetifyjs.com/en/features/sass-variables/

答案 3 :(得分:0)

给定的解决方案对我不起作用...所以我创建了一个。

<块引用>

这将减少选择列表项

.v-select .v-input__control .v-input__slot .v-select__slot .v-select__selections {
  padding: 0 !important;
  min-height: 0 !important;
}

.v-select-list .v-list-item {
  min-height: 0 !important;
}

.v-select-list .v-list-item .v-list-item__content {
  padding: 4px 0 !important;
}