Chip標籤
標籤元件用來協助使用者輸入資訊、選擇、篩選內容或執行相關操作。
使用方法
按需引入元件:
import 'mdui/components/chip.js';
按需引入元件的 TypeScript 型別:
import type { Chip } from 'mdui/components/chip.js';
使用範例:
<mdui-chip>Chip</mdui-chip>範例
形狀
使用 variant 屬性設定標籤的形狀。標籤共有 4 種形狀,可根據用途選擇:
assist:用於顯示與目前上下文相關的輔助操作。例如,在點餐頁面提供分享、收藏等功能。filter:用於對內容進行篩選。例如,在搜尋結果頁面對搜尋結果進行過濾。input:用於表示使用者輸入的資訊片段。例如,Gmail 中「收件人」欄位裡的聯絡人。suggestion:用於提供動態產生的推薦資訊,以簡化使用者操作。例如,在聊天應用中預測使用者可能想傳送的訊息,供使用者選擇。
陰影
加上 elevated 屬性可讓標籤具有陰影。
圖示
加上 icon、end-icon 屬性,可分別在標籤左側、右側加上 Material Icons 圖示。也可透過 icon、end-icon slot 在標籤左側、右側加入元素。
連結
加上 href 屬性即可將標籤轉為連結,並可使用以下連結相關的屬性:download、target、rel。
禁用及載入中狀態
加上 disabled 屬性可禁用標籤;加上 loading 屬性可為標籤加上載入中狀態。
可選取
加上 selectable 屬性可讓標籤變成可選取狀態。
使用 selected-icon 屬性即可指定選取狀態的 Material Icons 圖示名稱。也可以透過 selected-icon slot 指定選取狀態的圖示元素。
標籤被選取後,selected 屬性會變為 true。也可以透過加上 selected 屬性,使標籤預設處於選取狀態。
可刪除
加上 deletable 屬性後,標籤右側會出現一個刪除圖示。點擊該圖示會觸發 delete 事件。你可以透過 delete-icon 屬性指定刪除圖示的 Material Icons 圖示名稱,或者透過 delete-icon slot 指定刪除圖示的元素。
API
屬性
| HTML 屬性 | JavaScript 屬性 | Reflect | 型別 | 預設值 |
|---|---|---|---|---|
variant | variant | 'assist' | 'filter' | 'input' | 'suggestion' | 'assist' | |
標籤的形狀。可選值包括:
| ||||
elevated | elevated | boolean | false | |
是否顯示陰影 | ||||
selectable | selectable | boolean | false | |
是否可選取 | ||||
selected | selected | boolean | false | |
是否已選取 | ||||
deletable | deletable | boolean | false | |
是否可刪除。為 | ||||
icon | icon | string | - | |
左側的 Material Icons 圖示名。也可以透過 | ||||
selected-icon | selectedIcon | string | - | |
選取狀態下左側的 Material Icons 圖示名。也可以透過 | ||||
end-icon | endIcon | string | - | |
右側的 Material Icons 圖示名。也可以透過 | ||||
delete-icon | deleteIcon | string | - | |
可刪除時,右側刪除圖示的 Material Icons 圖示名。也可以透過 | ||||
href | href | string | - | |
連結的目標網址。 若設定此屬性,元件內部會渲染為 | ||||
download | download | string | - | |
下載目標。 Note:僅在設定了 | ||||
target | target | '_blank' | '_parent' | '_self' | '_top' | - | |
連結的開啟方式。可選值包括:
Note:僅在設定了 | ||||
rel | rel | 'alternate' | 'author' | 'bookmark' | 'external' | 'help' | 'license' | 'me' | 'next' | 'nofollow' | 'noreferrer' | 'opener' | 'prev' | 'search' | 'tag' | - | |
目前文件與被連結文件之間的關係。可選值包括:
Note:僅在指定了 | ||||
autofocus | autofocus | boolean | false | |
是否在頁面載入完成後自動取得焦點 | ||||
tabindex | tabIndex | number | - | |
元素在使用 Tab 鍵切換焦點時的順序 | ||||
disabled | disabled | boolean | false | |
是否停用 | ||||
loading | loading | boolean | false | |
是否處於載入中狀態 | ||||
name | name | string | '' | |
按鈕名稱,會與表單資料一起送出。 Note:僅在未設定 | ||||
value | value | string | '' | |
按鈕初始值,會與表單資料一起送出。 Note:僅在未設定 | ||||
type | type | 'submit' | 'reset' | 'button' | 'button' | |
按鈕的類型。預設類型為
Note:僅在未指定 | ||||
form | form | string | - | |
關聯的 若未指定此屬性,則該元素必須是 Note:僅在未指定 | ||||
formaction | formAction | string | - | |
指定送出表單的 URL。 若指定了此屬性,將覆蓋 Note:僅在未指定 | ||||
formenctype | formEnctype | 'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain' | - | |
指定送出表單到伺服器的內容類型。可選值包括:
若指定了此屬性,將覆蓋 Note:僅在未指定 | ||||
formmethod | formMethod | 'post' | 'get' | - | |
指定送出表單時使用的 HTTP 方法。可選值包括:
若設定了此屬性,將覆蓋 Note:僅在未設定 | ||||
formnovalidate | formNoValidate | boolean | false | |
若設定了此屬性,表單送出時將不執行表單驗證。 若設定了此屬性,將覆蓋 Note:僅在未設定 | ||||
formtarget | formTarget | '_self' | '_blank' | '_parent' | '_top' | - | |
送出表單後接收到的回應應顯示在何處。可選值包括:
若設定了此屬性,將覆蓋 Note:僅在未設定 | ||||
validity | ValidityState | - | ||
表單驗證狀態物件,具體參見 | ||||
validationMessage | string | - | ||
如果表單驗證未通過,此屬性將包含提示資訊。如果驗證通過,此屬性將為空字串 | ||||
方法
| 名稱 | 參數 | 回傳值 |
|---|---|---|
click | void | |
模擬滑鼠點擊元素 | ||
focus |
| void |
將焦點設定到目前元素。 可以傳入一個物件作為引數,該物件的屬性包括:
| ||
blur | void | |
移除目前元素的焦點 | ||
checkValidity | boolean | |
檢查表單欄位是否通過驗證。如果未通過,回傳 | ||
reportValidity | boolean | |
檢查表單欄位是否通過驗證。如果未通過,回傳 如果驗證未通過,還會在元件上顯示驗證失敗的提示。 | ||
setCustomValidity |
| void |
設定自訂的錯誤提示文字。只要這個文字不為空,就表示欄位未通過驗證 | ||
Slots
| 名稱 |
|---|
| 預設 |
標籤文字 |
icon |
左側元素 |
end-icon |
右側元素 |
selected-icon |
選取狀態下的左側元素 |
delete-icon |
可刪除時的右側刪除元素 |
CSS Parts
| 名稱 |
|---|
button |
內部的 |
label |
標籤文字 |
icon |
左側圖示 |
end-icon |
右側圖示 |
selected-icon |
選取狀態下的左側圖示 |
delete-icon |
可刪除時的右側刪除圖示 |
loading |
載入中狀態的 |
CSS 自訂屬性
| 名稱 |
|---|
--shape-corner |
元件的圓角大小。可以指定一個具體的像素值;但更推薦引用設計令牌 |