跳到主要內容
+

核取方塊

當一系列選項呈現給使用者時,核取方塊讓使用者可以做出二元選擇。

簡介

核取方塊為使用者提供二元選擇(是或否、開啟或關閉)的圖形化表示。它們最常見於一系列選項中,讓使用者可以做出多個選擇。

Joy UI 核取方塊元件取代了原生 HTML <input type="checkbox"> 元素,並為樣式和可訪問性提供了擴展選項。

<Checkbox />

遊樂場


基本用法

import Checkbox from '@mui/joy/Checkbox';

基本的核取方塊元件是一個設定為未核取狀態的單一輸入框。使用 label 屬性提供文字,並在預設情況下應核取輸入框時新增 defaultChecked

按下 Enter 開始編輯

客製化

變體

核取方塊元件支援 Joy UI 的四種全域變體solidsoftoutlinedplain。預設情況下,當未核取時,核取方塊設定為 outlined;當核取時,變體變更為 solid

variant 屬性新增至您的核取方塊會覆寫此預設行為。嘗試在下面的演示中核取和取消核取核取方塊,以查看差異

按下 Enter 開始編輯

尺寸

核取方塊元件有三種尺寸:smmd(預設)和 lg

按下 Enter 開始編輯

顏色

主題中包含的每個調色盤都可透過 color 屬性使用。

按下 Enter 開始編輯

圖示

預設情況下,核取方塊元件在未核取時為空。使用 uncheckedIcon 屬性為未核取狀態新增自訂圖示。您也可以使用 checkedIcon 來自訂核取狀態。

按下 Enter 開始編輯

在懸停時顯示

您可以將 uncheckedIcon 作為核取狀態的「預覽」,使其在使用者將滑鼠懸停在空白核取方塊上方時顯示。

下面的演示示範如何使用 svg 選擇器定位圖示,並套用 opacity 以獲得平滑效果

按下 Enter 開始編輯

沒有圖示

使用 disableIcon 屬性完全移除圖示。在這種情況下,核取方塊的狀態是透過套用至標籤的變體類型來傳達的。嘗試點擊下面的演示中的核取方塊標籤,以查看其運作方式

披薩配料

焦點外框

預設情況下,焦點外框會包圍核取方塊輸入框及其標籤。若要設定焦點外框使其僅包圍輸入框,請定位 checkboxClasses.checkbox 類別並新增 position: 'relative',如下面的演示所示

按下 Enter 開始編輯

可點擊容器

使用 overlay 屬性將焦點外框從核取方塊移至其容器,使整個容器可點擊以切換核取方塊的狀態。這適用於任何具有定位的包裝元素——下面的演示使用工作表(預設情況下,它具有 relative 定位)

按下 Enter 開始編輯

不確定狀態

預設的核取方塊是雙狀態:使用者可以在核取和未核取之間切換。

還有三狀態或不確定狀態核取方塊的選項,它支援稱為「部分核取」的狀態。

這種不確定狀態通常用於傳達一組核取方塊中只有部分被核取的事實。因此,它通常保留給可以控制其子元素狀態的父核取方塊。

下面的演示示範如何在監看其子元素中核取狀態的父核取方塊上實作 indeterminate 屬性。如果只有一個子元素被核取,則父元素會顯示不確定狀態。點擊父核取方塊會切換選取和取消選取所有子元素。

按下 Enter 開始編輯

輔助文字

import FormControl from '@mui/joy/FormControl';
import FormHelperText from '@mui/joy/FormHelperText';

使用表單控制和表單輔助文字元件為核取方塊新增描述。核取方塊將透過 aria-describedby 屬性連結到輔助文字。

核取方塊的描述。
按下 Enter 開始編輯

群組

若要將多個核取方塊分組,請將它們包裝在具有 role="group" 的容器元件(如 Box)中。

清單元件結合使用,以確保一致的間距,並使螢幕閱讀器能夠將核取方塊群組解讀為清單。在 W3C 文件中了解更多關於核取方塊的無障礙設計模式。

三明治醬料

常見範例

註冊核取方塊

若要將互動式元素與核取方塊一起使用,您可以將其與 FormControl 和 FormHelperText 包裝在一起。

閱讀我們的條款與細則

按下 Enter 開始編輯

篩選狀態

此範例使用清單項目和核取方塊元件可用的變體和顏色來傳達狀態變更。

篩選狀態

  • 8

  • 24

篩選成員

此範例使用 CSS flexDirection: 'rowReverse' 屬性來定位標籤和圖示。別忘了使用 label 屬性以確保正確的核取方塊可訪問性。

團隊成員

選擇晶片

您可以使用核取方塊重新建立一種晶片元件,該元件通常以一組篩選選項的形式實作。

選擇設施

剖析

核取方塊元件由根 <span> 組成,它包裝了輸入框和 <label>(如果存在)。請注意,實際的 <input type="checkbox"> 雙重巢狀於代表 checkboxaction 插槽的 <span> 元素中。

<span class="MuiCheckbox-root">
  <span class="MuiCheckbox-checkbox">
    <span class="MuiCheckbox-action">
      <input type="checkbox" class="MuiCheckbox-input" value />
    </span>
  </span>
  <label class="MuiCheckbox-label">
    <!-- label text -->
  </label>
</span>

無樣式

使用 Base UI 核取方塊 完全掌握元件的設計,而無需覆寫 Material UI 或 Joy UI 樣式。此元件的無樣式版本是高度客製化的理想選擇,且套件大小更小。

API

請參閱下面的文件,以取得此處提及之元件的所有屬性和類別的完整參考。