List 列表

列表是一种垂直排列的索引,用于展示文本或图片。

使用方法

按需导入组件:

import 'mdui/components/list.js';
import 'mdui/components/list-item.js';
import 'mdui/components/list-subheader.js';

按需导入组件的 TypeScript 类型:

import type { List } from 'mdui/components/list.js';
import type { ListItem } from 'mdui/components/list-item.js';
import type { ListSubheader } from 'mdui/components/list-subheader.js';

使用示例:

Subheader Item 1 Item 2
<mdui-list>
  <mdui-list-subheader>Subheader</mdui-list-subheader>
  <mdui-list-item>Item 1</mdui-list-item>
  <mdui-list-item>Item 2</mdui-list-item>
</mdui-list>

示例

文本内容

<mdui-list-item> 组件上设置 headline 属性,可以设定列表项的主文本,设置 description 属性,可以设定副文本。

也可以通过 default slot 设定主文本,通过 description slot 设定副文本。

默认情况下,主文本和副文本无论长度如何,都会完全显示。你可以通过设置 headline-linedescription-line 属性为主文本和副文本添加行数限制,最多可以限制为 3 行。

两侧内容

<mdui-list-item> 组件上设置 iconend-icon 属性,可以在列表项的左侧和右侧添加 Material Icons 图标。

也可以通过 iconend-icon slot 在列表项的左侧和右侧添加元素。

通过设置 href 属性,可以将列表项转换为链接。此时,你还可以使用与链接相关的属性,如:downloadtargetrel

禁用状态

<mdui-list-item> 组件上添加 disabled 属性,可以禁用该列表项。此时,列表项中的 checkbox、radio、switch 等组件也会被禁用。

激活状态

<mdui-list-item> 组件上添加 active 属性,可以激活该列表项。

不可点击状态

<mdui-list-item> 组件上添加 nonclickable 属性,可以移除列表项上的鼠标悬浮和点击涟漪效果。

圆角形状

<mdui-list-item> 组件上添加 rounded 属性,可以使该列表项呈现圆角形状。

垂直对齐方式

<mdui-list-item> 组件上设置 alignment 属性,可以调整列表项左右两侧元素与列表项的对齐方式。其值可以为:

  • start:顶部对齐
  • center:居中对齐
  • end:底部对齐

自定义内容

<mdui-list-item> 组件中使用 custom slot,可以完全自定义列表项的内容。

mdui-list API

Slots

名称
默认

<mdui-list-item> 元素

mdui-list-item API

属性

HTML 属性JavaScript 属性Reflect类型默认值
headlineheadlinestring-

主文本。也可以通过 default slot 设置

headline-lineheadlineLine1 | 2 | 3-

主文本行数,超过限制后将截断显示。默认无行数限制。可选值包括:

  • 1:显示单行,超出后截断
  • 2:显示两行,超出后截断
  • 3:显示三行,超出后截断
descriptiondescriptionstring-

副文本。也可以通过 slot="description" 设置

description-linedescriptionLine1 | 2 | 3-

副文本行数,超过限制后将截断显示。默认无行数限制。可选值包括:

  • 1:显示单行,超出后截断
  • 2:显示两行,超出后截断
  • 3:显示三行,超出后截断
iconiconstring-

左侧的 Material Icons 图标名。也可以通过 slot="icon" 设置

end-iconendIconstring-

右侧的 Material Icons 图标名。也可以通过 slot="end-icon" 设置

disableddisabledbooleanfalse

是否禁用该列表项,禁用后,列表项将变为灰色,且其中的 <mdui-checkbox><mdui-radio><mdui-switch> 等也将禁用

activeactivebooleanfalse

是否激活该列表项

nonclickablenonclickablebooleanfalse

是否使列表项不可点击。设置后,列表项中的 <mdui-checkbox><mdui-radio><mdui-switch> 等仍可交互

roundedroundedbooleanfalse

是否使用圆角形状的列表项

alignmentalignment'start' | 'center' | 'end''center'

列表项的垂直对齐方式。可选值包括:

  • start:顶部对齐
  • center:居中对齐
  • end:底部对齐
hrefhrefstring-

链接的目标 URL。

如果设置了此属性,组件内部将渲染为 <a> 元素,并可以使用链接相关的属性。

downloaddownloadstring-

下载链接的目标。

Note:仅在设置了 href 属性时,此属性才有效。

targettarget'_blank' | '_parent' | '_self' | '_top'-

链接的打开方式。可选值包括:

  • _blank:在新窗口中打开链接
  • _parent:在父框架中打开链接
  • _self:默认。在当前框架中打开链接
  • _top:在整个窗口中打开链接

Note:仅在设置了 href 属性时,此属性才有效。

relrel'alternate' | 'author' | 'bookmark' | 'external' | 'help' | 'license' | 'me' | 'next' | 'nofollow' | 'noreferrer' | 'opener' | 'prev' | 'search' | 'tag'-

当前文档与被链接文档之间的关系。可选值包括:

  • alternate:当前文档的替代版本
  • author:当前文档或文章的作者
  • bookmark:永久链接到最近的祖先章节
  • external:引用的文档与当前文档不在同一站点
  • help:链接到相关的帮助文档
  • license:当前文档的主要内容由被引用文件的版权许可覆盖
  • me:当前文档代表链接内容的所有者
  • next:当前文档是系列中的一部分,被引用的文档是系列的下一个文档
  • nofollow:当前文档的作者或发布者不认可被引用的文件
  • noreferrer:不包含 Referer 头。类似于 noopener 的效果
  • opener:如果超链接会创建一个顶级浏览上下文(即 target 属性值为 _blank),则创建一个辅助浏览上下文
  • prev:当前文档是系列的一部分,被引用的文档是系列的上一个文档
  • search:提供一个资源链接,可用于搜索当前文件及其相关页面
  • tag:提供一个适用于当前文档的标签(由给定地址识别)

Note:仅在指定了 href 属性时可用。

autofocusautofocusbooleanfalse

是否在页面加载完成后自动获取焦点

tabindextabIndexnumber-

元素在使用 Tab 键切换焦点时的顺序

方法

名称参数返回值
click
void

模拟鼠标点击元素

focus
  • options: FocusOptions (可选)
void

将焦点设置到当前元素。

可以传入一个对象作为参数,该对象的属性包括:

  • preventScroll:默认情况下,元素获取焦点后,页面会滚动以将该元素滚动到视图中。如果不希望页面滚动,可以将此属性设置为 true
blur
void

移除当前元素的焦点

事件

名称
focus

获得焦点时触发

blur

失去焦点时触发

Slots

名称
默认

主文本

description

副文本

icon

列表项左侧的元素

end-icon

列表项右侧的元素

custom

任意自定义内容

CSS Parts

名称
container

列表项容器

icon

左侧图标

end-icon

右侧图标

body

中间部分

headline

主标题

description

副标题

CSS 自定义属性

名称
--shape-corner

列表项的圆角大小。可以指定一个具体的像素值;但更推荐引用设计令牌

--shape-corner-rounded

指定了 rounded 属性时,列表项的圆角大小。可以指定一个具体的像素值;但更推荐引用设计令牌

mdui-list-subheader API

Slots

名称
默认

列表标题文本

MDUI文档English简体中文亮色模式暗色模式跟随系统
预设颜色
自选颜色
从壁纸提取颜色
请选择一张壁纸
开发指南
概述 安装 快速入门 TypeScript 支持 IDE 支持 本地化 常见问题
样式
暗色模式 动态配色 文章排版 设计令牌
与框架集成
React Vue Angular
组件
Button 按钮ButtonIcon 图标按钮Fab 浮动操作按钮SegmentedButton 分段按钮Chip 纸片Card 卡片Checkbox 复选框Radio 单选框Switch 开关切换Slider 滑块RangeSlider 范围滑块List 列表Collapse 折叠面板Tabs 选项卡Dropdown 下拉组件Menu 菜单Select 选择框TextField 文本框LinearProgress 线性进度指示器CircularProgress 圆形进度指示器Dialog 对话框Divider 分割线Avatar 头像Badge 徽标Icon 图标Tooltip 工具提示Snackbar 消息条NavigationBar 底部导航栏NavigationDrawer 侧边抽屉栏NavigationRail 侧边导航栏BottomAppBar 底部应用栏TopAppBar 顶部应用栏Layout 布局
工具函数
jq 工具库 dialog alert confirm prompt snackbar getTheme setTheme getColorFromImage setColorScheme removeColorScheme loadLocale setLocale getLocale throttle observeResize breakpoint
独立包
@mdui/icons 图标组件库