如何让 vuetify 数据 table 在卡片内时跨越容器的整个宽度?
How to get a vuetify data table to span the entire width of a container when it is inside a card?
我有一个嵌套在 v-card 中的 Vuetify 数据 table,这样我就可以对数据 table 启用内联搜索,但这会导致它缩小并且只占用整个容器的一小部分,而当没有嵌套在 v-card 中时它会填满整个容器。
我在 https://codepen.io/bigtunacan/project/editor/XGRpVL
的 codepen 上复制了一个最小的例子
主要关注点在这里。
<v-list-tile @click="">
<v-list-tile-action>
<v-icon>dashboard</v-icon>
</v-list-tile-action>
<v-list-tile-content>
<v-list-tile-title>Dashboard</v-list-tile-title>
</v-list-tile-content>
</v-list-tile>
<v-list-tile @click="">
<v-list-tile-action>
<v-icon>settings</v-icon>
</v-list-tile-action>
<v-list-tile-content>
<v-list-tile-title>Settings</v-list-tile-title>
</v-list-tile-content>
</v-list-tile>
</v-list>
</v-navigation-drawer>
<v-toolbar app fixed clipped-left>
<v-toolbar-side-icon @click.stop="drawer = !drawer"></v-toolbar-side-icon>
<v-toolbar-title>Candy Bars</v-toolbar-title>
</v-toolbar>
<v-content>
<v-container fluid fill-height>
<template>
<v-card>
<v-card-title>
Routes
<v-spacer></v-spacer>
<v-text-field append-icon="search" label="Search" single-line hide-details v-model="search"></v-text-field>
</v-card-title>
<v-data-table v-bind:headers="headers" :items="routes" :search="search" hide-actions class="elevation-1">
<template slot="items" slot-scope="props">
<td><router-link :to="{ name: 'route', params: {id: props.item.id}}">{{ props.item.name }}</router-link></td>
<td>{{ props.item.agency }}</td>
</template>
</v-data-table>
</v-card>
</template>
</v-container>
</v-content>
<v-footer app fixed>
<span>© 2017</span>
</v-footer>
</v-app>
而不是 <template>
,将卡片包裹在 <v-layout child-flex>
中,如下所示:
...
<v-content>
<v-container fluid fill-height>
<v-layout child-flex>
<v-card>
<v-card-title>
...
child-flex
是一个 class,它给它的 children(在这种情况下只是卡片)css 规则 flex: 1 1 auto
,使它们增长到填写可用 space。
将 属性 width="100vw"
添加到 v-card
元素
<v-container fluid fill-height>
<v-card width="100vw">
<v-data-table
:headers="headers"
:items="desserts"
:items-per-page="5"
class="elevation-1"
/>
</v-card>
</v-container>
基于 OP 的示例(一点)和当前版本的 vuetify (v2.3.19),
我有一个嵌套在 v-card 中的 Vuetify 数据 table,这样我就可以对数据 table 启用内联搜索,但这会导致它缩小并且只占用整个容器的一小部分,而当没有嵌套在 v-card 中时它会填满整个容器。
我在 https://codepen.io/bigtunacan/project/editor/XGRpVL
的 codepen 上复制了一个最小的例子主要关注点在这里。
<v-list-tile @click="">
<v-list-tile-action>
<v-icon>dashboard</v-icon>
</v-list-tile-action>
<v-list-tile-content>
<v-list-tile-title>Dashboard</v-list-tile-title>
</v-list-tile-content>
</v-list-tile>
<v-list-tile @click="">
<v-list-tile-action>
<v-icon>settings</v-icon>
</v-list-tile-action>
<v-list-tile-content>
<v-list-tile-title>Settings</v-list-tile-title>
</v-list-tile-content>
</v-list-tile>
</v-list>
</v-navigation-drawer>
<v-toolbar app fixed clipped-left>
<v-toolbar-side-icon @click.stop="drawer = !drawer"></v-toolbar-side-icon>
<v-toolbar-title>Candy Bars</v-toolbar-title>
</v-toolbar>
<v-content>
<v-container fluid fill-height>
<template>
<v-card>
<v-card-title>
Routes
<v-spacer></v-spacer>
<v-text-field append-icon="search" label="Search" single-line hide-details v-model="search"></v-text-field>
</v-card-title>
<v-data-table v-bind:headers="headers" :items="routes" :search="search" hide-actions class="elevation-1">
<template slot="items" slot-scope="props">
<td><router-link :to="{ name: 'route', params: {id: props.item.id}}">{{ props.item.name }}</router-link></td>
<td>{{ props.item.agency }}</td>
</template>
</v-data-table>
</v-card>
</template>
</v-container>
</v-content>
<v-footer app fixed>
<span>© 2017</span>
</v-footer>
</v-app>
而不是 <template>
,将卡片包裹在 <v-layout child-flex>
中,如下所示:
...
<v-content>
<v-container fluid fill-height>
<v-layout child-flex>
<v-card>
<v-card-title>
...
child-flex
是一个 class,它给它的 children(在这种情况下只是卡片)css 规则 flex: 1 1 auto
,使它们增长到填写可用 space。
将 属性 width="100vw"
添加到 v-card
元素
<v-container fluid fill-height>
<v-card width="100vw">
<v-data-table
:headers="headers"
:items="desserts"
:items-per-page="5"
class="elevation-1"
/>
</v-card>
</v-container>
基于 OP 的示例(一点)和当前版本的 vuetify (v2.3.19),