Vuetify
Vuetify
基本知识
引入
CDN
| |
使用 Vue CLI
| |
在项目目录中使用
| |
或者使用 Vue UI 安装
| |
Electron 用法
要在 Electron 中使用 Vuetify ,需通过 Vue CLI 添加 electron-builder 插件。
| |
布局
Vuetify 有两个主要布局组件, v-app 和 v-main
| |
v-app
v-app 组件是应用程序的根节点,直接替换默认的 Vue 入口 <div id="app">
在其中写入的元素,会作为布局的一部分
在组件或其他视图中,不需要引入 v-app
所有应用都需要 v-app 组件。 这是许多 Vuetify 组件和功能的挂载点,而且它必须是所有 Vuetify 组件的祖先节点
v-app 只应该在应用中渲染一次。
v-main
v-main 组件是替换 main HTML 元素和应用程序的根节点 内容 的语义替代
常常在其中切换路由
它会根据你指定的应用组件的结构而动态调整大小
默认应用标记
只要设置 app 属性,你可以将布局元素放在任何地方
通用属性
| Name | Type | Default | Description |
|---|---|---|---|
| color | string | undefined | 详见 colors page |
| app | 相应的组件是应用布局的一部分 | ||
| dense | boolean | flase | 使组件更小 |
| elevation | number | string | undefined | 组件的海拔可接受 0 到 24 之间的值 |
| disabled | boolean | false | 移除组件的单击或 target 功能 |
应用组件
这些组件通常被用作布局元素。它们可以混合和匹配,并且每个特定组件在任何时候都只能存在一个
每一个应用组件都有一个指定的位置和优先级,影响布局系统中的位置
- v-app-bar:总是放在应用顶部,优先级低于
v-system-bar。 - v-bottom-navigation:总是放在应用底部,优先级高于
v-footer。 - v-footer:总是放在应用底部,优先级低于
v-bottom-navigation。 - v-navigation-drawer:可以放置在应用的左边或右边,并且可以配置在
v-app-bar的旁边或下面。 - v-system-bar:总是放在应用顶部,优先级高于
v-app-bar
v-app-bar
v-app-bar 组件对于任何图形用户界面(GUI)都至关重要,因为它通常是站点导航的主要来源

App-bar 组件与 <a href=“/components/navigation drawers”> v-navigation-drawer 配合使用,可以在应用程序中提供站点导航
v-app-bar 组件用于应用程序范围内的操作和信息
API
| Name | Type | Default | Description |
|---|---|---|---|
| collapse | boolean | false | 将工具栏置于折叠状态,以减小其最大宽度 |
| collapse-on-scroll | boolean | false | 滚动时将应用栏置于折叠状态 |
| dense | boolean | false | 将工具栏内容的高度降低到 48px(使用 prominent 属性时为 96px)。 |
子组件
v-app-bar-nav-icon
专门为与 v-toolbar 和 v-app-bar 一起使用而创建的样式化图标按钮组件
在工具栏的左侧显示为汉堡菜单,它通常用于控制导航抽屉的状态
| |
v-app-bar-title
修改过的 v-toolbar-title 组件 ,用于配合 shrink-on-scroll 属性使用
v-bottom-navigation
v-footer
v-footer 组件用于显示用户可能想要从网站中的任何页面都能访问到的公共信息
v-navition-drawer
(导航抽屉)
用于导航应用程序的组件
为了显示的目的,一些示例被包装在 v-card 元素中。
通常会把 v-navigation-drawer 组件作为 v-app 的直接子组件
使用 null 作为其 v-model 的初始值 将会将抽屉初始化为在移动设备上关闭,在桌面环境下打开。
通常使用 nav 属性将抽屉与 v-list 组件配对
API
| Name | Type | Default | Description |
|---|---|---|---|
| expand-on-hover | boolean | false | 将抽屉折叠成 mini-variant,直到用鼠标悬停 |
| temporary | boolean | false | 临时抽屉位于其应用之上,并使用稀松布(叠加)来使背景变暗 |
| permanent | boolean | false | 不管屏幕尺寸如何,抽屉都可以看到 |
| src | string | object | undefined | 指定 v-img 作为组件背景。 |
v-system-bar
多功能组件
v-cards
卡中有 4 个基本组件。 v-card-title, v-card-subtitle, v-card-text 和 v-card-actions
API
| Name | Type | Default | Description |
|---|---|---|---|
| hover | boolean | false | 悬停时将应用 4dp 的海拔(默认值为 2dp) |
| img | string | undefined | 指定卡片的背景图。对于更高级的实现,建议您使用 v-img 组件 |
| to | string | object | undefined | 表示链接的目标路由 |
| dense | boolean | false | 将工具栏内容的高度降低到 48px |
| rounded | boolean | string | undefined | 对指定的组件应用 border-radius 样式 |
| outlined | boolean | false | 去除卡片的实心颜色并添加细边框 |
| loading | boolean | string | false | 显示线性进度条。可以是指定将哪种颜色应用于进度条的字符串(任何 material 色彩——主要(primary), 次要(secondary), 成功(success), 信息(info),警告(warning),错误(error)),或者使用组件的布尔值 color(由色彩属性设置——如果它被组件支持的话)还可以是原色 |
子组件
v-card-actions
用于为卡片放置 动作 的容器,如 v-btn 或 v-menu
v-card-text
主要用于卡片中的 文本内容
v-card-subtitle
为卡片字幕提供默认的 字体大小 和 填充
v-card-title
为卡片字幕提供默认的 字体大小 和 填充
v-tool-bar
v-toolbar 组件对于任何 gui 都是至关重要的,因为它通常是站点导航的主要来源。 工具栏组件与 <a href="/components/navigation drawers">, v-navigation-drawer 和 v-card 配合使用非常有效
| |
API
| Name | Type | Default | Description |
|---|---|---|---|
| prominent | boolean | false | 将工具栏内容的高度增加到 128px |
| src | string | object | undefined | 指定 v-img 作为组件背景 |
| collapse | boolean | false | 将工具栏置于折叠状态,以减小其最大宽度 |
| dense | boolean | false | 将工具栏内容的高度降低到 48px |
子组件
v-toolbar-items
允许 v-btn 扩展全高度
v-toolbar-title
用于显示标题
v-list
v-list 组件用于显示信息。 它可以包含头像、内容、操作、列表组标题等等。 列表以易于在集合中识别特定项目的方式显示内容。 它们为组织一组文本和图像提供了一致的样式
列表有三种基本形式。 单行 (默认), 双行 和 三行. 行声明指定了项目的最小高度,也可以使用相同的属性从 v-list 中进行控制
| |

API
| Name | Type | Default | Description |
|---|---|---|---|
| disabled | boolean | false | 禁用所有子级的 v-list-item 组件 |
| flat | boolean | false | 删除活动的 v-list-item 上突出显示的背景 |
| dense | boolean | false | 减小列表块的最大宽度 |
| rounded | boolean | false | 圆角 v-list-item 边 |
| three-line / two-line | boolean | false | 增加三 \ 两行的列表项高度 |
| nav | boolean | false | 另一种样式可以减小 v-list-item 的宽度并圆角化。 通常与 v-navigation-drawer 一起使用 |
子组件
v-list-item
装载列表项子组件
| Name | Type | Default | Description |
|---|---|---|---|
| link | boolean | false | 指定组件为链接。当使用 href 或 to属性时,这是自动的设置的。 |
| to | string | object | undefined | 表示链接的目标路由 |
| href | string | object | undefined | 指定组件为锚点并应用 href 属性。 |
v-list-item-content
装载文字组件
v-list-item-icon
装载图标组件
v-list-item-title
列表元素标题
v-list-item-subtitle
列表元素副标题
v-list-item-action
装载动作组件
v-list-item-avatar
装载头像类型的图片组件 img
小型组件
v-btn
API
| Name | Type | Default | Description |
|---|---|---|---|
| outlined | boolean | false | 使背景透明并使用薄边框 |
| block | boolean | false | 将按钮扩大到可用空间的 100%。 |
| depressed | boolean | false | 移除按钮的阴影效果 |
| disabled | boolean | false | 移除组件的单击或 target 功能 |
| elevation | number | string | undefined | 组件的海拔可接受 0 到 24 之间的值 |
| exact | boolean | false | 完全匹配链接。如果没有这个链接,‘/’ 将匹配每个路由 |
| append | boolean | false | 设置 append 属性总是会附加到当前路径的相对路径上。 |
| fab | boolean | false | Designates the button as a floating-action-button. Button will become round |
| href | string | object | undefined | 指定组件为锚点并应用 href 属性 |
| icon | boolean | false | Designates the button as icon. Button will become round and applies the text prop |
| link | boolean | false | 指定组件为链接。当使用 href 或 to 属性时,这是自动的设置的 |
| plain | boolean | false | 移除悬停在按钮上时应用的默认背景变化 |
| value | any | undefined | 控制组件可见还是隐藏 |
| text | boolean | false | Makes the background transparent |
v-icon
可以在按钮内部使用
| |
API
| Name | Type | Default | Description |
|---|---|---|---|
| small | boolean | false | 使组件尺寸变的小 |
| large | boolean | false | 使组件尺寸变的巨大 |
| x-small | boolean | false | 使组件尺寸变的更小 |
| x-large | boolean | false | 使组件尺寸变的无比巨大 |
| right | boolean | false | 当按钮放置在另一个元素或文本的右边时,对按钮内的图标应用适当的间距 |
| left | boolean | false | 当按钮放置在另一个元素或文本的左边时,对按钮内的图标应用适当的间距 |
v-img
API
| Name | Type | Default | Description |
|---|---|---|---|
| alt | string | undefined | 屏幕阅读器的备用文本。 留空以装饰图像 |
| aspect-ratio | string | number | undefined | 计算为width/height,因此对于 1920x1080px 的图片,其值为 1.7778。 |
| contain | boolean | false | 防止图像不合适时被裁剪 |
| x-large | boolean | false | 使组件尺寸变的无比巨大 |
| max-height | number | string | undefined | 设定组件的最大高度 |
| min-width | number | string | undefined | 设定组件的最小宽度 |
| src | string | object | undefined | 图像的 URL。这个属性是强制性的 |
v-pagination
v-pagination 组件用于分离长数据集,以便用户消化信息。 根据提供的数据量,分页组件将自动缩放
分页默认根据设置的 length 属性显示页数,两边有 prev 和 next 按钮帮助导航
API
| Name | Type | Default | Description |
|---|---|---|---|
| length | number | 0 | 分页组件的长度 |
| prev-icon | string | ‘$prev’ | 指定用于上一个图标的图标 |
| next-icon | string | ‘$next’ | 指定用于下一个图标的图标 |
v-snackbar
v-snackbar 以最简单的形式向用户显示一个临时且可关闭的通知
API
| Name | Type | Default | Description |
|---|---|---|---|
| timeout | number | string | 5000 | 等待snackbar 自动隐藏的时间 (毫秒) 。使用 “-1” 保持无限期打开 (版本 < 2 的 0 )。 建议这个数字在 4000 和 10000 之间。此属性的更改将重置超时 |
大型组件
v-date-picker
API
| Name | Type | Default | Description |
|---|---|---|---|
| max | string | undefined | 允许的最大 日期/月份(ISO 8601格式) |
| min | string | undefined | 允许的最小 日期/月份(ISO 8601格式) |
| multiple | boolean | false | 允许选择多个日期 |
| picker-date | string | undefined | 显示 年/月 |
| type | string | ‘date’ | 确定选择器的类型 - 日期选择器的 date ,月选择器的 month |
| scrollable | boolean | false | 允许通过鼠标滚动更改显示的月份 |
v-time-picker
API
| Name | Type | Default | Description |
|---|---|---|---|
| format | string | ‘ampm’ | 定义在选择器中显示的时间格式。可用的选项是 ampm 和 24hr |
| scrollable | boolean | false | 允许通过鼠标滚动更改 小时/分钟 |
表单组件
v-text-field
使用 v-model 绑定输入值,同时可以设置默认值
API
| Name | Type | Default | Description |
|---|---|---|---|
| label | string | undefined | 设置输入标签 |
| filled | boolean | false | 应用替代填充输入样式 |
| placeholder | string | undefined | 设置输入的占位符文本 |
| hint | string | undefined | 提示文本 |
| counter | boolean | number | string | undefined | 为输入长度创建一个计数器,如果未指定数字,则默认为25,不会应用任何验证 |
| rules | array | [] | 接受不同类型的 function, boolean 和 string 。 函数传递输入值作为参数,必须返回 true / false 或包含错误消息的 string 。 如果函数返回 (或数组包含的任何值) false 或 string ,输入字段将输入错误状态 |
| value | any | undefined | 输入的值 |
| disabled | boolean | false | 禁用输入 |
| rounded | boolean | false | 向输入添加边框半径 |
| readonly | boolean | false | 将输入设置为只读状态 |
| hide-details | boolean | string | undefined | 隐藏提示和验证错误。当设置为 auto 时,只有在有信息(提示、错误信息、计数器值等)要显示时,才会显示信息 |
| persistent-hint | boolean | false | 强制提示总是可见的 |
| prepend-icon | string | undefined | 在组件前添加一个图标,使用与 v-icon 相同的语法 |
| prepend-inner-icon | string | undefined | 在组件的输入中添加一个图标,使用与 v-icon 相同的语法 |
| prefix | string | undefined | 显示前缀 |
| suffix | string | undefined | 显示后缀 |
| single-line | boolean | false | 标签在 focus/dirty 上不移动 |
| type | string | ’text' | 设置输入类型 |
v-radio
单选按钮。虽然 v-radio 可以单独使用,但它最好与 v-radio-group 一起使用。 在 v-radio-group 上使用 v-model,可以访问组内所选单选按钮的值

API
| Name | Type | Default | Description |
|---|---|---|---|
| disabled | boolean | false | 移除组件的单击或 target 功能 |
| readonly | boolean | false | 将输入设置为只读状态 |
| value | any | undefined | 在组中选择组件时使用的值。如果没有提供,则使用 index |
| label | string | undefined | 设置输入标签 |
v-checbox
v-checbox 组件为用户提供了在两个不同的值之间选择的能力。 它们与开关(switch) 非常相似,可用于复杂的表格和核对清单
API
| Name | Type | Default | Description |
|---|---|---|---|
| append-icon | string | undefined | 在组件上附加一个图标,使用与 v-icon 相同的语法 |
| disabled | boolean | false | 禁用输入 |
| hint | string | undefined | 提示文本 |
| label | string | undefined | 设置输入标签 |
| input-value | any | undefined | v-model 的绑定值 |
v-simple-checbox
v-select
下拉框
API
| Name | Type | Default | Description |
|---|---|---|---|
| items | array | [] | 可以是对象数组或字符串数组。当使用对象时,将寻找文本和值字段。 这可以使用 item-text 和 item-value 属性来更改 |
| disabled | boolean | false | 禁用输入 |
| hint | string | undefined | 提示文本 |
| label | string | undefined | 设置输入标签 |
| item-text | string | array | function | text | 设置items’属性的文本值 |
| item-value | string | array | function | value | 设置 items 的值的属性 |
| prepend-icon | string | undefined | 在组件前添加一个图标,使用与 v-icon 相同的语法 |
| multiple | boolean | false | 多选,接受数组作为值 |
v-switch
API
| Name | Type | Default | Description |
|---|---|---|---|
| input-value | any | undefined | v-model 的绑定值 |
| flat | boolean | false | 显示没有海拔的组件 |
| inset | boolean | false | 扩展 v-switch 轨迹以包含缩略图 |
| value | any | undefined | 输入的值 |
v-slider
API
| Name | Type | Default | Description |
|---|---|---|---|
| max | number | string | 100 | 设置允许的最大值 |
| min | number | string | 0 | 设置允许的最小值 |
| prepend-icon | string | undefined | 在组件前添加一个图标,使用与 v-icon 相同的语法 |
| step | number | string | 1 | 如果大于0,则为滑块上的点设置步骤间隔 |
| track-color | string | undefined | 设置刻度线颜色 |
| thumb-color | string | undefined | 设置拇指和拇指标签颜色 |
| thumb-label | boolean | string | undefined | 显示拇指标签 |
| label | string | undefined | 设置输入标签 |
| value | any | undefined | 输入的值 |
| thumb-label | boolean | string | undefined | 显示拇指标签 |
| ticks | boolean | string | false | 显示刻度线。如果 true ,使用滑块时将显示刻度线。如果设置为 'always' ,它总是显示刻度线 |
| inverse-label | boolean | false | 使用 rtl 反转标签位置 |
| tick-labels | array | [] | 与 Array 一起提供时,将尝试按索引顺序将标签映射到每个步骤 |
v-file-input
v-file-input组件的核心是一个基于 v-text-field 拓展的基本容器
使用 accpect 属性,v-file-input组件可以选择接收你想要的媒体格式/文件类型,如 accept="image/png, image/jpeg"
当 show-size 属性和 counter 一同启用时,会下输入框下方显示文件总数和大小
API
| Name | Type | Default | Description |
|---|---|---|---|
| append-icon | string | undefined | 在组件上附加一个图标,使用与 v-icon 相同的语法 |
| clearable | boolean | true | 添加清除已输入内容功能,默认图标是Material Design Icons mdi-clear |
| truncate-length | number | string | 22 | 在用省略号截断之前的文件名的长度 |
| label | string | undefined | 设置输入标签 |
| loading | boolean | string | false | 显示线性进度条。可以是指定将哪种颜色应用于进度条的字符串(任何 material 色彩——主要(primary), 次要(secondary), 成功(success), 信息(info),警告(warning),错误(error) |
| multiple | boolean | false | 将 multiple 属性添加到输入中,允许选择多个文件 |
| chips | boolean | false | 改变一个已选择项为小纸片(chips)的显示方式 |
| show-size | boolean | number | false | 设置所选文件的显示大小 |
v-textarea
v-textarea 最简单的形式是多行文本字段,对于大量文本非常有用
API
与 v-text-feild 类似
| Name | Type | Default | Description |
|---|---|---|---|
| no-resize | boolean | false | 移除调整大小的句柄 |
| rows | number | string | 5 | 默认行数 |
v-form
网格系统
(Grid System)
7.1 v-container
v-container 提供了将你的网站内容居中和水平填充的功能。 你还可以使用 fluid 属性将容器在所有视口和设备尺寸上完全扩展。
- fill-height 将使整个内容 相对于 page 居中
v-row
v-row 是 v-col 的容器组件。 它使用 flex 属性来控制其内栏的布局和流
| Name | Type | Default | Description |
|---|---|---|---|
| align | string | undefined | 应用 align-items css 属性。可用的选项是 start, center, end, baseline 和 stretch |
| justify | string | undefined | 应用 justify-content css 属性。可用选项是 start, center, end, space-between 和 space-around |
v-col
v-col 包裹内容,它必须是 v-row 的直接子代
| Name | Type | Default | Description |
|---|---|---|---|
| dense | boolean | false | 减少 v-col 之间的距离。 |
| cols | boolean | string | number | false | 设置组件扩展的默认列数。可用的选项是 1 -> 12 和 auto 。 |
| md | boolean | string | number | false | 更改中等和更大断点上的列数,其他断点同理 |
v-spacer
v-spacer 是一个基本而又通用的间隔组件,用于分配父子组件之间的剩余宽度
组
样式
颜色
每种颜色都会被转换为 background 和 text 变体
| |
改变背景颜色 red
改变文本颜色 text--red
改变背景明暗 lighten-4
改变文本明暗 text--darken-2
文本
字体强调
| |

字体大小
格式
.text-{value}用于xs.text-{breakpoint}-{value}用于sm,md,lg和xl
value
h1h2h3h4h5h6subtitle-1subtitle-2body-1body-2buttoncaptionoverline
文本对齐
自动对齐
.text-justify
指定方向对齐
.text-left
.text-right
.text-center
.text-{breakpoint}-{direction}

不透明度
text--primary 与默认文本具有相同的不透明度。
text--secondary 用于提示和辅助文本。
text--disabled 用于去除强调文本

装饰线
移除文本装饰线
.text-decoration-none
添加上划线
.text-decoration-overline
添加下划线线
``.text-decoration-underline`
添加删除线
``.text-decoration-line-through`
转换大小写
.text-lowercase:小写
.text-uppercase:大写
.text-capitalize:单词首字母大写
间距
格式:{property}{direction}-{size}

property 应用间距类型:
m- 应用marginp- 应用padding
direction 指定了该属性所应用的侧边:
t- 应用margin-top和padding-top的间距b- 应用margin-bottom和padding-bottom的间距l- 应用margin-left和padding-left的间距r- 应用margin-right和padding-right的间距s- 应用margin-left/padding-left(LTR 模式) 和margin-right/padding-right(RTL 模式) 的间距e- 应用margin-right/padding-right(LTR 模式) 和margin-left/padding-left(RTL 模式) 的间距x- 应用*-left和*-right的间距y- 应用*-top和*-bottom的间距a- 在所有方向应用该间距
size 以 4px 增量控制间距属性:
0- 通过设置为0来消除所有margin或padding.1- 设置margin或padding为 4px2- 设置margin或padding为 8px3- 设置margin或padding为 12px4- 设置margin或padding为 16px5- 设置margin或padding为 20px6- 设置margin或padding为 24px7- 设置margin或padding为 28px8- 设置margin或padding为 32px9- 设置margin或padding为 36px10- 设置margin或padding为 40px11- 设置margin或padding为 44px12- 设置margin或padding为 48px13- 设置margin或padding为 52px14- 设置margin或padding为 56px15- 设置margin或padding为 60px16- 设置margin或padding为 64pxn1- 设置margin为 -4pxn2- 设置margin为 -8pxn3- 设置margin为 -12pxn4- 设置margin为 -16pxn5- 设置margin为 -20pxn6- 设置margin为 -24pxn7- 设置margin为 -28pxn8- 设置margin为 -32pxn9- 设置margin为 -36pxn10- 设置margin为 -40pxn11- 设置margin为 -44pxn12- 设置margin为 -48pxn13- 设置margin为 -52pxn14- 设置margin为 -56pxn15- 设置margin为 -60pxn16- 设置margin为 -64pxauto- 设置间距为 auto
显示辅助
设置显示元素
格式:hidden-{breakpoint}-{condition}
condition:
only- 只在某个指定断点隐藏元素and down- 在指定的断点和以下隐藏元素, 从sm到lg断点and up- 在指定的断点和以上隐藏元素, 从sm到lg断点
https://vuetifyjs.com/zh-Hans/styles/display/#section-53ef89c16027