如何在 Vuetify 中更改 v-text-field 宽度?

Ale*_*x T 13 css vue.js vuetify.js

我将 v-text-field 组件放置在工具栏内,但它几乎占用了所有可用空间。如何更改此文本字段的宽度以占用更少空间?

<v-toolbar
    dense
  >
    <v-app-bar-nav-icon></v-app-bar-nav-icon>
    <v-toolbar-title>Title</v-toolbar-title>
    <v-text-field
      hide-details
      label="Filled"
      placeholder="Search"
      filled
      rounded
      dense
      single-line
      append-icon="mdi-magnify"
    ></v-text-field>
    <v-btn rounded>Button 1</v-btn>
    <v-btn icon>
      <v-icon></v-icon>
    </v-btn>
    <v-btn icon>
      <v-icon>mdi-dots-vertical</v-icon>
    </v-btn>
  </v-toolbar>
Run Code Online (Sandbox Code Playgroud)

Zim*_*Zim 13

由于工具栏是display:flex您可以使用class="shrink"...

      <v-text-field 
            hide-details 
            label="Filled" 
            placeholder="Search" 
            filled 
            rounded 
            dense 
            single-line 
            append-icon="mdi-magnify" class="shrink">
      </v-text-field>
Run Code Online (Sandbox Code Playgroud)

演示:https : //codeply.com/p/h3Y8u3nK7P

  • 我用这个答案来修改确切的宽度:class =“shrink”style =“width:100px”。 (3认同)
  • 是的,您可以在文本字段上使用间距实用程序..例如“mx-4”。我更新了演示:https://codeply.com/p/h3Y8u3nK7P (2认同)

She*_*zod 8

您可以通过 css 以作用域样式执行此操作:

<style scoped>
/deep/ .v-text-field{
      width: 400px;
}
</style>
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请阅读Vuetify 文档

  • 它有效,但是如何在没有 CSS 的情况下在元素本身内部的 HTML 中做到这一点呢?特别是如果您有多个输入,并且您想为每个输入添加特定宽度 (2认同)

Zra*_*lok 5

Vuetify 的答案如下:将您的内容包装v-text-fieldv-responsive这样:

<v-responsive class="ma-0 pa-0" :width="`${input.length}.5rem`">
   <v-text-field v-model="input"/>
</v-responsive>
Run Code Online (Sandbox Code Playgroud)

当然,您可以将宽度计算更改为任意 JavaScript,这样文本字段将始终适合键入的输入。