表格
表格以行列方式顯示組織化的資料集。
簡介
Joy UI Table 元件讓您可以使用純 HTML 結構在 JSX 中組裝表格。
ID | 職稱 | 姓名 |
---|---|---|
1 | 醫生 | 克里斯·強森 |
2 | 電工 | 約瑟夫·莫里斯 |
3 | 操作員 | 艾登·莫雷諾 |
4 | 麵包師 | 麥克·西蒙斯 |
5 | 職員 | 伊諾克·艾迪生 |
總計 | 4 人 |
<Sheet>
<Table />
</Sheet>
Playground
甜點(每 100 克份量) | 卡路里 | 脂肪 (克) | 碳水化合物 (克) | 蛋白質 (克) |
---|---|---|---|---|
冷凍優格 | 159 | 6 | 24 | 4 |
冰淇淋三明治 | 237 | 9 | 37 | 4.3 |
閃電泡芙 | 262 | 16 | 24 | 6 |
杯子蛋糕 | 305 | 3.7 | 67 | 4.3 |
薑餅 | 356 | 16 | 49 | 3.9 |
欄寬 (40%) | 卡路里 | 脂肪 (克) | 碳水化合物 (克) | 蛋白質 (克) |
---|---|---|---|---|
冷凍優格 | 159 | 6 | 24 | 4 |
冰淇淋三明治 | 237 | 9 | 37 | 4.3 |
閃電泡芙 | 262 | 16 | 24 | 6 |
杯子蛋糕 | 305 | 3.7 | 67 | 4.3 |
薑餅 | 356 | 16 | 49 | 3.9 |
內聯樣式
控制欄寬的另一種方法是在 <th>
元素上使用 內聯樣式
<thead>
<tr>
<th style={{ width: '40%' }}>Column 1</th>
<th style={{ width: '64px' }}>Column 2</th>
</tr>
</thead>
對齊
使用 sx
屬性以適當的 CSS 選擇器鎖定欄位,並套用 text-align
屬性。
// target cells that are not the first in their respective rows.
<Table sx={{ '& tr > *:not(:first-child)': { textAlign: 'right' } }}>
欄寬 (40%) | 卡路里 | 脂肪 (克) | 碳水化合物 (克) | 蛋白質 (克) |
---|---|---|---|---|
冷凍優格 | 159 | 6 | 24 | 4 |
冰淇淋三明治 | 237 | 9 | 37 | 4.3 |
閃電泡芙 | 262 | 16 | 24 | 6 |
杯子蛋糕 | 305 | 3.7 | 67 | 4.3 |
薑餅 | 356 | 16 | 49 | 3.9 |
甜點(每 100 克份量) | 卡路里 | 脂肪 (克) | 碳水化合物 (克) | 蛋白質 (克) |
---|---|---|---|---|
冷凍優格 | 159 | 6 | 24 | 4 |
冰淇淋三明治 | 237 | 9 | 37 | 4.3 |
閃電泡芙 | 262 | 16 | 24 | 6 |
杯子蛋糕 | 305 | 3.7 | 67 | 4.3 |
薑餅 | 356 | 16 | 49 | 3.9 |
尺寸
此元件提供三種尺寸:sm
、md
(預設)和 lg
。
甜點(每 100 克份量) | 卡路里 | 脂肪 (克) | 碳水化合物 (克) | 蛋白質 (克) |
---|---|---|---|---|
冷凍優格 | 159 | 6 | 24 | 4 |
冰淇淋三明治 | 237 | 9 | 37 | 4.3 |
閃電泡芙 | 262 | 16 | 24 | 6 |
杯子蛋糕 | 305 | 3.7 | 67 | 4.3 |
薑餅 | 356 | 16 | 49 | 3.9 |
條紋
若要在列之間建立對比,請將 stripe
屬性與 odd
或 even
值搭配使用。
甜點(每 100 克份量) | 卡路里 | 脂肪 (克) | 碳水化合物 (克) | 蛋白質 (克) |
---|---|---|---|---|
冷凍優格 | 159 | 6 | 24 | 4 |
冰淇淋三明治 | 237 | 9 | 37 | 4.3 |
閃電泡芙 | 262 | 16 | 24 | 6 |
杯子蛋糕 | 305 | 3.7 | 67 | 4.3 |
薑餅 | 356 | 16 | 49 | 3.9 |
懸停
若要在滑鼠懸停在表格主體的列時反白顯示該列,請將 hoverRow
屬性設定為 true。
欄寬 (40%) | 卡路里 | 脂肪 (克) | 碳水化合物 (克) | 蛋白質 (克) |
---|---|---|---|---|
冷凍優格 | 159 | 6 | 24 | 4 |
冰淇淋三明治 | 237 | 9 | 37 | 4.3 |
閃電泡芙 | 262 | 16 | 24 | 6 |
杯子蛋糕 | 305 | 3.7 | 67 | 4.3 |
薑餅 | 356 | 16 | 49 | 3.9 |
邊框
使用 borderAxis
屬性來控制邊框外觀。
甜點(每 100 克份量) | 卡路里 | 脂肪 (克) | 碳水化合物 (克) | 蛋白質 (克) |
---|---|---|---|---|
冷凍優格 | 159 | 6 | 24 | 4 |
冰淇淋三明治 | 237 | 9 | 37 | 4.3 |
閃電泡芙 | 262 | 16 | 24 | 6 |
杯子蛋糕 | 305 | 3.7 | 67 | 4.3 |
薑餅 | 356 | 16 | 49 | 3.9 |
新增自訂邊框
使用 extendTheme()
函數,根據 borderAxis
屬性自訂表格主題。
import { CssVarsProvider, extendTheme } from '@mui/joy/styles';
const theme = extendTheme({
components: {
JoyTable: {
styleOverrides: {
root: ({ ownerState }) => ({
...(ownerState.borderAxis === 'header' && {
// this example applies borders between <thead> and <tbody>
'& thead th:not([colspan])': {
borderBottom: '2px solid var(--TableCell-borderColor)',
},
}),
});
}
}
}
})
<CssVarsProvider theme={theme}>…</CssVarsProvider>
對於 TypeScript,您必須透過模組擴充新增值
// this could be any file that's included in your tsconfig.json
declare module '@mui/joy/Table' {
interface TablePropsBorderAxisOverrides {
header: true;
}
}
固定標題和頁腳
將 stickyHeader
設定為 true,以在使用者捲動表格時,始終將標題固定在頂端。
將 stickyFooter
設定為 true,以始終將頁腳固定在表格底部。
表格主體是可捲動的。
列 | 卡路里 | 脂肪 (克) | 碳水化合物 (克) | 蛋白質 (克) |
---|---|---|---|---|
1 | 159 | 6 | 24 | 4 |
2 | 237 | 9 | 37 | 4.3 |
3 | 262 | 16 | 24 | 6 |
4 | 305 | 3.7 | 67 | 4.3 |
5 | 356 | 16 | 49 | 3.9 |
6 | 159 | 6 | 24 | 4 |
7 | 237 | 9 | 37 | 4.3 |
8 | 262 | 16 | 24 | 6 |
9 | 305 | 3.7 | 67 | 4.3 |
10 | 356 | 16 | 49 | 3.9 |
總計 | 2638.00 | 101.40 | 402.00 | 45.00 |
3186.4千卡 |
標題
新增標題以總結表格內容,方法是插入 <caption>
元素作為表格的第一個子元素。
選單 | 卡路里 | 脂肪 (克) | 碳水化合物 (克) | 蛋白質 (克) |
---|---|---|---|---|
冷凍優格 | 159 | 6 | 24 | 4 |
冰淇淋三明治 | 237 | 9 | 37 | 4.3 |
閃電泡芙 | 262 | 16 | 24 | 6 |
杯子蛋糕 | 305 | 3.7 | 67 | 4.3 |
薑餅 | 356 | 16 | 49 | 3.9 |
選單 | 卡路里 | 脂肪 (克) | 碳水化合物 (克) | 蛋白質 (克) |
---|---|---|---|---|
冷凍優格 | 159 | 6 | 24 | 4 |
冰淇淋三明治 | 237 | 9 | 37 | 4.3 |
閃電泡芙 | 262 | 16 | 24 | 6 |
杯子蛋糕 | 305 | 3.7 | 67 | 4.3 |
薑餅 | 356 | 16 | 49 | 3.9 |
總計 | 1,319 | 50.7 | 201 | 22.5 |
列標題
將 scope="row"
設定為 <tbody>
內的 <th>
元素,以套用與欄標題相同的樣式。以下示範說明常見的使用案例:將第一欄設定為符合標題樣式。
欄寬 (40%) | 卡路里 | 脂肪 (克) | 碳水化合物 (克) | 蛋白質 (克) |
---|---|---|---|---|
冷凍優格 | 159 | 6 | 24 | 4 |
冰淇淋三明治 | 237 | 9 | 37 | 4.3 |
閃電泡芙 | 262 | 16 | 24 | 6 |
杯子蛋糕 | 305 | 3.7 | 67 | 4.3 |
薑餅 | 356 | 16 | 49 | 3.9 |
列和欄跨度
使用 rowSpan
和 columnSpan
將儲存格跨越多列或多欄展開。
姓名 | ID | 會員日期 | 餘額 | |
---|---|---|---|---|
加入日期 | 取消日期 | |||
瑪格麗特·阮 | 427311 | 不適用 | 0.00 | |
愛德華·加林斯基 | 533175 | 37.00 | ||
星 中村 | 601942 | 不適用 | 15.00 |
文字省略
若要截斷文字,請將 noWrap
設定為 true。標題儲存格始終會截斷文字,以保持標題的高度可預測。
姓名 | 描述(您應該會看到此訊息的一部分) |
---|---|
![]() Morty D Ardiousdellois Addami 作家、Youtuber | Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque. Quisque porta volutpat erat. Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla. |
約瑟夫·莫里索 | ℹ️In eleifend quam a odio。 Suspendisse potenti in hac habitasse platea dictumst。 |
CSS 變數 playground
試用 Table 元件可用的 CSS 變數,以查看設計如何變更。您可以使用這些變數,透過 sx
屬性和主題自訂元件。
姓名 | 角色 |
---|---|
亞當 | 開發人員 |
約瑟夫 | 經理 |
<Table />
CSS 變數
搭配 Sheet 使用
import Sheet from @mui/joy/Sheet
當 Table 成為 Sheet 元件的子元件時,表格標題背景會繼承自 Sheet。
欄寬 (40%) | 卡路里 | 脂肪 (克) | 碳水化合物 (克) | 蛋白質 (克) |
---|---|---|---|---|
冷凍優格 | 159 | 6 | 24 | 4 |
冰淇淋三明治 | 237 | 9 | 37 | 4.3 |
閃電泡芙 | 262 | 16 | 24 | 6 |
杯子蛋糕 | 305 | 3.7 | 67 | 4.3 |
薑餅 | 356 | 16 | 49 | 3.9 |
欄寬 (40%) | 卡路里 | 脂肪 (克) | 碳水化合物 (克) | 蛋白質 (克) |
---|---|---|---|---|
冷凍優格 | 159 | 6 | 24 | 4 |
冰淇淋三明治 | 237 | 9 | 37 | 4.3 |
閃電泡芙 | 262 | 16 | 24 | 6 |
杯子蛋糕 | 305 | 3.7 | 67 | 4.3 |
薑餅 | 356 | 16 | 49 | 3.9 |
冷凍優格 | 159 | 6 | 24 | 4 | |
---|---|---|---|---|---|
冰淇淋三明治 | 237 | 9 | 37 | 4.3 | |
閃電泡芙 | 262 | 16 | 24 | 6 | |
杯子蛋糕 | 305 | 3.7 | 67 | 4.3 | |
棉花糖 | 318 | 0 | 81 | 2 | |
1–5 / 13 |
← 捲動方向 →
列 | 卡路里 | 脂肪 (克) | 碳水化合物 (克) | 蛋白質 (克) | |
---|---|---|---|---|---|
1 | 159 | 6 | 24 | 4 | |
2 | 237 | 9 | 37 | 4.3 | |
3 | 262 | 16 | 24 | 6 | |
4 | 305 | 3.7 | 67 | 4.3 |
甜點(每 100 克份量) | 卡路里 | 脂肪 (克) | 碳水化合物 (克) | 蛋白質 (克) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
冷凍優格 | 159 | 6 | 24 | 4 | |||||||||||||
歷史記錄
| |||||||||||||||||
冰淇淋三明治 | 237 | 9 | 37 | 4.3 | |||||||||||||
閃電泡芙 | 262 | 16 | 24 | 6 | |||||||||||||
杯子蛋糕 | 305 | 3.7 | 67 | 4.3 | |||||||||||||
薑餅 | 356 | 16 | 49 | 3.9 | |||||||||||||
套用全域變體
使用 theme.variants.*
將全域變體樣式套用至表格。
球員 | Gloobles | Za'taak |
---|---|---|
TR-7 | 7 | 4,569 |
Khiresh Odo | 7 | 7,223 |
蜜雅·烏龍 | 9 | 6,219 |
表格主體是可捲動的。
列 | 卡路里 | 脂肪 (克) | 碳水化合物 (克) | 蛋白質 (克) |
---|---|---|---|---|
1 | 159 | 6 | 24 | 4 |
2 | 237 | 9 | 37 | 4.3 |
3 | 262 | 16 | 24 | 6 |
4 | 305 | 3.7 | 67 | 4.3 |
5 | 356 | 16 | 49 | 3.9 |
6 | 159 | 6 | 24 | 4 |
7 | 237 | 9 | 37 | 4.3 |
8 | 262 | 16 | 24 | 6 |
9 | 305 | 3.7 | 67 | 4.3 |
10 | 356 | 16 | 49 | 3.9 |