标签页
选项卡让您可以轻松浏览和切换不同的视图。
选项卡用于组织内容,并允许在相关且处于同一层级结构的内容组之间进行导航。
基础知识
import Tabs from '@mui/material/Tabs';
import Tab from '@mui/material/Tab';
实验性 API
@mui/lab
提供了实用组件,这些组件注入了 props 以实现遵循 WAI-ARIA 创作实践的可访问选项卡
<TabList />
- 容纳选项卡的容器。负责处理选项卡之间的焦点和键盘导航。<TabPanel />
- 托管与选项卡关联的内容的卡片。<TabContext />
- 包装 Tab List 和 Tab Panel 组件的顶层组件。
包裹标签
长标签将在选项卡上自动换行。如果标签对于选项卡而言太长,则会溢出,并且文本将不可见。
禁用选项卡
可以通过设置 disabled
prop 来禁用选项卡。
项目一
居中
centered
prop 应用于较大的视图。
强制滚动按钮
应用 scrollButtons={true}
和 allowScrollButtonsMobile
prop 以在所有视口上显示左右滚动按钮
如果您想确保按钮始终可见,则应自定义不透明度。
.MuiTabs-scrollButtons.Mui-disabled {
opacity: 0.3;
}
阻止滚动按钮
使用 scrollButtons={false}
永远不会显示左右滚动按钮。所有滚动都必须通过用户代理滚动机制启动(例如,左右滑动、Shift 鼠标滚轮等)
项目一
第三方路由库
一个常见的用例是在客户端仅执行导航,而无需 HTTP 往返服务器。Tab
组件提供了 component
prop 来处理此用例。这是一个更详细的指南。
图标选项卡
选项卡标签可以是全部图标或全部文本。
图标位置
默认情况下,图标位于选项卡的 top
。其他支持的位置是 start
、end
、bottom
。
无障碍功能
(WAI-ARIA:https://www.w3.org/WAI/ARIA/apg/patterns/tabs/)
为了为辅助技术提供必要的信息,需要执行以下步骤
- 通过
aria-label
或aria-labelledby
标记Tabs
。 Tab
需要通过设置正确的id
、aria-controls
和aria-labelledby
连接到它们对应的[role="tabpanel"]
。
可以在此页面上的演示中找到当前实现的示例。我们还在 @mui/lab
中发布了实验性 API,它不需要额外的工作。
键盘导航
这些组件使用“手动激活”行为实现键盘导航。如果您想切换到“选择自动跟随焦点”行为,则必须将 selectionFollowsFocus
传递给 Tabs
组件。WAI-ARIA 创作实践对如何决定何时使选择自动跟随焦点进行了详细的指南。
演示
以下两个演示仅在键盘导航行为上有所不同。聚焦一个选项卡并使用箭头键导航以注意差异,例如 向左箭头键。
/* Tabs where selection follows focus */
<Tabs selectionFollowsFocus />
/* Tabs where each tab needs to be selected manually */
<Tabs />
无样式
使用 Base UI Tabs 完全拥有组件的设计,无需覆盖 Material UI 或 Joy UI 样式。此组件的无样式版本是进行大量自定义和缩小捆绑包大小的理想选择。
API
请参阅下面的文档,以获取此处提到的组件的所有可用 props 和类的完整参考。