工具栏
v-toolbar
组件对于任何 gui 都是至关重要的,因为它通常是站点导航的主要来源。工具栏组件与 v-navigation-drawer 和 v-card 配合使用效果非常好。
用例
工具栏是一个灵活的容器,可以通过多种方式使用。 默认情况下,工具栏在桌面上的高度为 64px,在移动设备上的高度为 56px。 工具栏上有许多辅助组件可供使用。v-toolbar-title
用于显示标题, v-toolbar-items
允许 v-btn 扩展整个高度。
当在 v-toolbar
和 v-app-bar
内部使用带有 icon 属性的 <v-btn>
时,它们的大小会自动增加,并且会使用负边距来确保适当的间距以遵守 Material Design Specification。如果您选择将按钮包装在任何容器中,例如<div>
,则需要对该容器应用负边距以正确对齐它们。
API
从下面选择您想要的组件,并查看可用的属性、插槽、事件和函数。
示例
下面是一些简单到复杂的例子。
突出的工具栏
突出的工具栏将 v-toolbar
‘ 的高度增加到 _128px_,并将 v-toolbar-title
放置在容器的底部。 这在 v-app 中进行了扩展,能够将 prominent 工具栏缩小为 dense 或 short。
template
<template>
<v-card
color="grey lighten-4"
flat
height="200px"
tile
>
<v-toolbar prominent extended>
<v-app-bar-nav-icon></v-app-bar-nav-icon>
<v-toolbar-title>Title</v-toolbar-title>
<v-spacer></v-spacer>
<v-btn icon>
<v-icon>mdi-magnify</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-heart</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-dots-vertical</v-icon>
</v-btn>
</v-toolbar>
</v-card>
</template>
密集的工具栏
密集工具栏降低其高度未48px,这也是移动设备横向定位的默认行为。
template
<template>
<v-card
color="grey lighten-4"
flat
height="200px"
tile
>
<v-toolbar dense>
<v-app-bar-nav-icon></v-app-bar-nav-icon>
<v-toolbar-title>Title</v-toolbar-title>
<v-spacer></v-spacer>
<v-btn icon>
<v-icon>mdi-magnify</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-heart</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-dots-vertical</v-icon>
</v-btn>
</v-toolbar>
</v-card>
</template>
明亮和暗黑
工具栏有两个变种,明亮和暗黑。明亮工具栏有深色的按钮和黑暗的文字,而暗黑工具栏有白色的按钮和白色的文字。
template
<template>
<v-card flat>
<v-container fluid>
<v-row class="child-flex">
<div>
<v-toolbar>
<v-btn icon class="hidden-xs-only">
<v-icon>mdi-arrow-left</v-icon>
</v-btn>
<v-toolbar-title>Title</v-toolbar-title>
<v-spacer></v-spacer>
<v-btn icon class="hidden-xs-only">
<v-icon>mdi-magnify</v-icon>
</v-btn>
</v-toolbar>
</div>
<div style="flex-basis: 20%">
<v-toolbar dark>
<v-spacer></v-spacer>
<v-btn icon>
<v-icon>mdi-reply</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-dots-vertical</v-icon>
</v-btn>
</v-toolbar>
</div>
</v-row>
</v-container>
</v-card>
</template>
变量
一个应用程序栏有多个可以应用主题和辅助类的变种,范围从明亮和暗黑的主题、色彩和透明度。
template script
<template>
<v-row>
<v-col
v-for="(bar, i) in bars"
:key="i"
cols="12"
sm="12"
md="6"
class="my-4"
>
<v-card color="grey lighten-4" flat height="200px">
<v-toolbar :color="bar.class" :dark="bar.dark">
<v-app-bar-nav-icon></v-app-bar-nav-icon>
<v-toolbar-title>Title</v-toolbar-title>
<v-spacer></v-spacer>
<v-btn icon>
<v-icon>mdi-magnify</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-heart</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-dots-vertical</v-icon>
</v-btn>
</v-toolbar>
</v-card>
</v-col>
</v-row>
</template>
<script>
export default {
data: () => ({
bars: [
{ class: '' },
{ class: '', dark: true },
{ class: 'primary', dark: true },
{ class: 'elevation-0' },
],
}),
}
</script>
突出 w/ Background
工具栏可以显示背景,而不是纯色。 可以通过使用 img 插槽并提供您自己的 v-img 组件来进行修改。 可以使用 v-app-bar 淡化背景。
template
<template>
<div>
<v-toolbar
dark
prominent
src="https://cdn.vuetifyjs.com/images/backgrounds/vbanner.jpg"
>
<v-app-bar-nav-icon></v-app-bar-nav-icon>
<v-toolbar-title>Vuetify</v-toolbar-title>
<v-spacer></v-spacer>
<v-btn icon>
<v-icon>mdi-export</v-icon>
</v-btn>
</v-toolbar>
</div>
</template>
扩展
无需使用 extension
插槽即可扩展工具栏。
template
<template>
<v-card
color="grey lighten-4"
flat
height="200px"
tile
>
<v-toolbar extended>
<v-app-bar-nav-icon></v-app-bar-nav-icon>
<v-toolbar-title>Title</v-toolbar-title>
<v-spacer></v-spacer>
<v-btn icon>
<v-icon>mdi-magnify</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-heart</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-dots-vertical</v-icon>
</v-btn>
</v-toolbar>
</v-card>
</template>
Vuetify Newsletter
See the latest and greatest Vuetify guides, upcoming releases, community projects and more!
ads by Vuetify
](https://www.getrevue.co/profile/vuetify?ref=vuetifyjs.com)
扩展高度
扩展的高度可以定制。
template
<template>
<v-card
color="grey lighten-4"
flat
height="200px"
tile
>
<v-toolbar extended extension-height="100">
<v-app-bar-nav-icon></v-app-bar-nav-icon>
<v-toolbar-title>Title</v-toolbar-title>
<v-spacer></v-spacer>
<v-btn icon>
<v-icon>mdi-magnify</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-heart</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-dots-vertical</v-icon>
</v-btn>
</v-toolbar>
</v-card>
</template>
折叠
可以折叠工具栏以节省屏幕空间。
template
<template>
<v-card
color="grey lighten-4"
flat
height="200px"
tile
>
<v-toolbar collapse>
<v-btn icon>
<v-icon>mdi-magnify</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-dots-vertical</v-icon>
</v-btn>
</v-toolbar>
</v-card>
</template>
灵活的工具栏和卡片工具栏
在本例中,我们使用 extended 属性将卡片偏移到工具栏的扩展内容区域。
template
<template>
<v-card flat>
<v-toolbar
color="primary"
dark
extended
flat
>
<v-app-bar-nav-icon></v-app-bar-nav-icon>
</v-toolbar>
<v-card
class="mx-auto"
max-width="700"
style="margin-top: -64px;"
>
<v-toolbar flat>
<v-toolbar-title class="grey--text">Title</v-toolbar-title>
<v-spacer></v-spacer>
<v-btn icon>
<v-icon>mdi-magnify</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-apps</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-dots-vertical</v-icon>
</v-btn>
</v-toolbar>
<v-divider></v-divider>
<v-card-text style="height: 200px;"></v-card-text>
</v-card>
</v-card>
</template>
搜索时浮动
浮动工具栏被转换成内联元素,只占用所需的空间。这在将工具栏放置在内容上时特别有用。
template
<template>
<v-card
class="pa-4"
flat
height="300px"
img="https://cdn.vuetifyjs.com/images/toolbar/map.jpg"
>
<v-toolbar
dense
floating
>
<v-text-field
hide-details
prepend-icon="search"
single-line
></v-text-field>
<v-btn icon>
<v-icon>my_location</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-dots-vertical</v-icon>
</v-btn>
</v-toolbar>
</v-card>
</template>
上下文操作栏
可以根据应用程序状态的变化更新工具栏的外观。在本例中,工具栏的颜色和内容根据用户在 v-select
中的选择而变化。
template script
<template>
<v-card
max-width="500"
class="mx-auto"
>
<v-toolbar
:color="selection.length ? 'grey darken-4' : 'deep-purple accent-4'"
dark
>
<v-app-bar-nav-icon v-if="!selection.length"></v-app-bar-nav-icon>
<v-btn
v-else
icon
@click="selection = []"
>
<v-icon>mdi-close</v-icon>
</v-btn>
<v-toolbar-title>
{{ selection.length ? `${selection.length} selected` : 'Photos' }}
</v-toolbar-title>
<v-spacer></v-spacer>
<v-scale-transition>
<v-btn
v-if="selection.length"
key="export"
icon
>
<v-icon>mdi-export-variant</v-icon>
</v-btn>
</v-scale-transition>
<v-scale-transition>
<v-btn
v-if="selection.length"
key="delete"
icon
>
<v-icon>mdi-delete</v-icon>
</v-btn>
</v-scale-transition>
<v-btn icon>
<v-icon>mdi-dots-vertical</v-icon>
</v-btn>
</v-toolbar>
<v-card-text>
<v-select
v-model="selection"
:items="items"
multiple
label="Select an option"
></v-select>
</v-card-text>
</v-card>
</template>
<script>
export default {
data: () => ({
selection: [],
items: ['Foo', 'Bar', 'Fizz', 'Buzz'],
}),
}
</script>