文字截斷
將文字限制為一行或指定行數,並以刪節號結尾。
本頁目錄
類別
| 類別 | 宣告 |
|---|---|
truncate | overflow: hidden;text-overflow: ellipsis;white-space: nowrap; |
clamp-lines(<integer>) | display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: <integer>;overflow: hidden;overflow-wrap: break-word;text-overflow: ellipsis; |
兩種形式都需要受限的寬度。在 Flex 或 Grid 項目內,請為該項目設定 min-w(0),讓它能夠縮小。
限制可見文字,同時保留閱讀全文的方式
truncate 結合隱藏溢位、刪節號與不換行設定。它需要具有有限行內寬度的區塊容器,才會產生溢位;套用在寬度未受限的行內 span 上,不會形成單行預覽。
相同文字可顯示全部、一行或兩行
字型、寬度與文字都相同,只改變截斷 class。刪節號由瀏覽器原生繪製,每個元素仍保有完整字串。
文字說明
- 每份文字寬 192px,字型大小 14px,行高 24px。
- 第一份文字自由換行,並增高以容納所有行。truncate 讓第二份維持一行,並以刪節號隱藏溢位。
- clamp-lines(2) 讓第三份文字換行,再透過帶前綴的 line-clamp 組合,將可見內容限制為兩行。
- 三個元素都包含相同的完整字串。讀者需要閱讀完整的可見文字時,必須另外提供展開控制項或連結。
clamp-lines(2) 使用帶前綴的 line-clamp 組合:display: -webkit-box、垂直盒模型方向、兩行限制與隱藏溢位。行數必須是正整數。這種形式允許換行,因此不要與 truncate 及其 white-space: nowrap 合併使用。
文字仍保留在 DOM 中。裁切只是視覺限制,不會縮短字串,也不是展開內容的機制。請透過真正的連結或可展開的全文檢視,保留重要資訊的存取方式;不要只依賴滑鼠停留時才顯示的 title。
Flex 或 Grid 項目的自動最小尺寸可能使它比可用空間更寬。請在需要縮小的項目上設定 min-w(0),再限制其內部文字。使用多行截斷時,請將 padding 放在外層容器,避免內距讓已裁切的行露出來。
這個組合樣式會設定自己的 display 與 overflow 宣告。用 flex、grid 或可見溢位覆寫它們,可能破壞行數限制。需要自訂截斷規則時,請明確使用原生屬性。
用法
讓檔名維持一行、摘要限制為兩行,並可展開詳細內容閱讀兩者的全文。
field-notes-autumn-collection-final-v03.fig
Good interfaces make space for the details: a short preview helps readers decide what to explore next while a clear link keeps the complete story within reach, so the summary works as an invitation and the full article carries everything else.
Read full details
field-notes-autumn-collection-final-v03.fig
Good interfaces make space for the details: a short preview helps readers decide what to explore next while a clear link keeps the complete story within reach, so the summary works as an invitation and the full article carries everything else.
<article class="… max-w-3xs"> <p class="… truncate">field-notes-autumn-collection-final-v03.fig</p> <p class="… clamp-lines(2)">Good interfaces make space for…</p> <details><summary>Read full details</summary><p>field-notes-autumn-collection-final-v03.fig</p><p>Good interfaces make space for…</p></details></article>產生的 CSS
@layer theme { :root, :host { --container-3xs: 16rem }}@layer utilities { .clamp-lines\(2\) { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; overflow-wrap: break-word; text-overflow: ellipsis } .truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap } .max-w-3xs { max-width: var(--container-3xs) }}自訂
預設集使用 @utility 定義這些類別。在你的樣式表中定義相同名稱,即可取代原本的定義。
@utility truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}@utility clamp-lines(--n <integer>) { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: var(--n); overflow: hidden; overflow-wrap: break-word; text-overflow: ellipsis;}另見 utility 定義與文字排版.

