跳到內容
+

分頁

分頁讓探索和切換不同視圖變得容易。

分頁組織相關且處於相同層級的內容群組,並允許在這些群組之間導航。

簡介

分頁是使用相關元件的集合來實作的

  • <Tab /> - 分頁元素本身。點擊分頁會顯示其對應的面板。
  • <Tabs /> - 容納分頁的容器。負責處理分頁之間的焦點和鍵盤導航。
項目一
按下 Enter 開始編輯

基本用法

import Tabs from '@mui/material/Tabs';
import Tab from '@mui/material/Tab';

實驗性 API

@mui/lab 提供實用元件,注入 props 以實作遵循 WAI-ARIA Authoring Practices 的可訪問分頁

  • <TabList /> - 容納分頁的容器。負責處理分頁之間的焦點和鍵盤導航。
  • <TabPanel /> - 託管與分頁關聯內容的卡片。
  • <TabContext /> - 包裹 Tab List 和 Tab Panel 元件的最上層元件。
項目一
按下 Enter 開始編輯

包裝標籤

長標籤將自動在分頁上換行。如果標籤對於分頁來說太長,它會溢出,並且文字將不可見。

按下 Enter 開始編輯
按下 Enter 開始編輯

停用分頁

可以透過設定 disabled prop 來停用分頁。

按下 Enter 開始編輯

固定分頁

固定分頁應與有限數量的分頁一起使用,並且當一致的位置將有助於肌肉記憶時。

全寬

variant="fullWidth" prop 應用於較小的視圖。

項目一

置中

centered prop 應用於較大的視圖。

按下 Enter 開始編輯

可滾動分頁

自動滾動按鈕

使用 variant="scrollable"scrollButtons="auto" props 在桌面上顯示左右滾動按鈕,這些按鈕在行動裝置上會隱藏

按下 Enter 開始編輯

強制滾動按鈕

套用 scrollButtons={true}allowScrollButtonsMobile prop 以在所有視口上顯示左右滾動按鈕

按下 Enter 開始編輯

如果您想確保按鈕始終可見,您應該自訂不透明度。

.MuiTabs-scrollButtons.Mui-disabled {
  opacity: 0.3;
}

防止滾動按鈕

永遠不會使用 scrollButtons={false} 顯示左右滾動按鈕。所有滾動都必須透過使用者代理程式滾動機制啟動(例如左右滑動、Shift 滾輪等)

按下 Enter 開始編輯

客製化

以下是自訂元件的範例。您可以在覆寫文件頁面中了解更多相關資訊。

🎨 如果您正在尋找靈感,可以查看 MUI Treasury 的客製化範例

垂直分頁

要製作垂直分頁而不是預設的水平分頁,可以使用 orientation="vertical"

項目一

請注意,您可以使用 visibleScrollbar 還原捲軸。

預設情況下,分頁使用 button 元素,但您可以提供自訂標籤或元件。以下是實作分頁導航的範例

按下 Enter 開始編輯

第三方路由庫

一個常見的用例是在僅在用戶端執行導航,而無需 HTTP 往返伺服器。 Tab 元件提供了 component prop 來處理此用例。這有一個更詳細的指南

圖示分頁

分頁標籤可以是全部圖示或全部文字。

按下 Enter 開始編輯
按下 Enter 開始編輯

圖示位置

預設情況下,圖示位於分頁的 top。其他支援的位置為 startendbottom

按下 Enter 開始編輯

無障礙功能

(WAI-ARIA:https://www.w3.org/WAI/ARIA/apg/patterns/tabs/

為了為輔助技術提供必要資訊,需要執行以下步驟

  1. 透過 aria-labelaria-labelledby 標記 Tabs
  2. Tab 需要透過設定正確的 idaria-controlsaria-labelledby 連接到其對應的 [role="tabpanel"]

可以在此頁面上的示範中找到目前實作的範例。我們也在 @mui/lab 中發布了實驗性 API,不需要額外的工作。

鍵盤導航

元件使用「手動啟用」行為實作鍵盤導航。如果您想切換到「選取自動跟隨焦點」行為,您必須將 selectionFollowsFocus 傳遞到 Tabs 元件。WAI-ARIA Authoring Practices 有一個關於 如何決定何時使選取自動跟隨焦點 的詳細指南。

示範

以下兩個示範僅在鍵盤導航行為上有所不同。聚焦分頁並使用方向鍵導航以注意差異,例如 向左箭頭鍵

/* 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 和類別的完整參考。