[CSS] 如何避免文字過長影響排版:text-overflow & line-clamp

更新於 發佈於 閱讀時間約 6 分鐘

當要顯示的文字過長時,一般會使用 CSS 隱藏超出的部分,並在文字尾端顯示 ... 來表示內容並未完全顯示。

raw-image


Demo:https://codepen.io/lwxidmpx-the-scripter/pen/MYgVmjm



單行文字截斷

overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;

多行文字截斷

overflow: hidden;
-webkit-line-clamp: 2;
display: -webkit-box;
-webkit-box-orient: vertical;


許多人會把這兩組 CSS 當成固定用法直接記下來,但如果能了解每個語法的用途,就能應用在更多不同情境。



單行文字截斷


overflow: hidden;:隱藏超出元素範圍的內容

除了 hidden 屬性,用 scroll 控制 scrollbar 也是常見的使用情境。並可以用 overflow-x & overflow-y 分別控制 水平與垂直的 scrollbar。


white-space: nowrap;:避免文字自動換行

當要顯示的內容為程式碼,希望縮排、換行都能完整呈現時,可以使用 white-space: pre;

<style>
.code {
white-space: pre;
}
</style>
<div class="code">
function example() {
console.log("保留縮排和換行");
}
</div>


text-overflow: ellipsis;:當文字超出範圍時顯示 ...



因此,實現單行文字截斷才需要將三個屬性一起使用。

  1. 避免文字自動換行。
  2. 隱藏超出元素範圍的內容。
  3. 當文字超出範圍時顯示 ...


如果還是不清楚,可以在 codepen 中試著移除任一屬性,看看有什麼差別。



多行文字截斷

-webkit-line-clamp: 2;:設定行數,並在文字超出範圍時顯示 ...

此屬性已經包含所有設定,理論上,只需加上 overflow: hidden; 將超出的行數隱藏即可。

然而,實際使用需要搭配 display: -webkit-box;-webkit-box-orient: vertical;

要解釋其原因,先來說明這個奇怪的前綴 -webkit。


CSS 瀏覽器前綴

古時候,各瀏覽器廠商會率先實現一些尚未完全標準化的 CSS 特性。為了避免這些實驗性功能造成影響,瀏覽器廠商引入了 CSS 前綴,用於標記哪些屬性是特定瀏覽器的實現。

-webkit-  /* 用於基於 WebKit 的瀏覽器,如 Safari 和 Chrome */
-moz- /* 用於 Firefox */
-ms- /* 用於舊版的 IE 和 Edge */
-o- /* 用於舊版的 Opera */

現在,大部分主流 CSS 特性都已標準化,需要使用前綴的情境已經相當少。


-webkit-line-clamp 是由 WebKit 引入的實驗性功能。由於其實用性高,其他瀏覽器也沿用該語法以保持兼容性。因此,現代開發仍持續使用帶有 -webkit- 前綴的語法來實現多行截斷。且 -webkit-line-clamp 必須要搭配 display: -webkit-box;-webkit-box-orient: vertical;使用。

It only works in combination with the display property set to -webkit-box or -webkit-inline-box and the -webkit-box-orient property set to vertical.

* https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-line-clamp


display: -webkit-box;-webkit-box-orient: vertical; 是早期 WebKit Flexbox 的語法,除了搭配 -webkit-line-clamp 使用外,其他的使用情境均已被 display: flex; 取代。



延伸閱讀


在某些複雜的排版中,可能無法光靠 CSS 來實現文字截斷。此時,可以參考這篇文章中介紹的其他解決方案。


留言
avatar-img
留言分享你的想法!
avatar-img
前端轉職經驗談
5會員
41內容數
零基礎到成功轉職,一路上會遇到哪些挑戰、應該如何解決? - 猶豫階段:「這適合我嗎?薪水如何?...」 - 起步階段:「怎麼開始學?要不要做 side project?...」 - 成長階段:「如何優化開發效率?選擇框架?...」 - 面試階段:「怎麼準備技術和行為面試?...」
前端轉職經驗談的其他內容
2025/03/09
原文:HOW TO GET STARTUP IDEAS 原文是針對如何找出創業的題目,不過如果想做 side project 卻苦無想法的話,也可以參考看看。 獲得創業點子的方法不是刻意去想創業點子,而是尋找問題,最好是你自己面臨的問題。 最優秀的創業點子通常具有三個共同點: 這是創辦
2025/03/09
原文:HOW TO GET STARTUP IDEAS 原文是針對如何找出創業的題目,不過如果想做 side project 卻苦無想法的話,也可以參考看看。 獲得創業點子的方法不是刻意去想創業點子,而是尋找問題,最好是你自己面臨的問題。 最優秀的創業點子通常具有三個共同點: 這是創辦
2025/02/02
學習 JavaScript 時,理解語法和概念是一回事,實際應用又是另一回事。許多初學者會遇到「看得懂範例,但自己寫不出來」的困境。因此,本文從實際開發的常見情境中,簡化出了 10 個範例,讓你能夠逐步練習,慢慢熟悉寫程式的思考方式。
2025/02/02
學習 JavaScript 時,理解語法和概念是一回事,實際應用又是另一回事。許多初學者會遇到「看得懂範例,但自己寫不出來」的困境。因此,本文從實際開發的常見情境中,簡化出了 10 個範例,讓你能夠逐步練習,慢慢熟悉寫程式的思考方式。
2025/01/30
每年一次的 State of JS 問卷調查,不只是觀察前端技術趨勢的工具,更是檢視自身技能與學習方向的絕佳機會。透過這份調查,你可以了解前端生態的變化,確保自己沒有錯過重要資訊,並規劃未來的學習路線。
Thumbnail
2025/01/30
每年一次的 State of JS 問卷調查,不只是觀察前端技術趨勢的工具,更是檢視自身技能與學習方向的絕佳機會。透過這份調查,你可以了解前端生態的變化,確保自己沒有錯過重要資訊,並規劃未來的學習路線。
Thumbnail
看更多
你可能也想看
Thumbnail
在這篇文章中,Lily將分享使用Canva時常遇到的小bug以及隱藏版功能的解決方法。許多使用者在使用Canva模板時,常會發現文字呈現為全大寫,本文將直接介紹如何關閉這個功能,幫助你更有效率地使用Canva,提升設計創作的順暢度。希望能幫助到你!
Thumbnail
在這篇文章中,Lily將分享使用Canva時常遇到的小bug以及隱藏版功能的解決方法。許多使用者在使用Canva模板時,常會發現文字呈現為全大寫,本文將直接介紹如何關閉這個功能,幫助你更有效率地使用Canva,提升設計創作的順暢度。希望能幫助到你!
Thumbnail
本篇文章是根據知名 SEO 軟體開發商 Ahrefs 在分析一百多萬個網址後,所整理出來的技術性 SEO 問題以及對應的解決方案。
Thumbnail
本篇文章是根據知名 SEO 軟體開發商 Ahrefs 在分析一百多萬個網址後,所整理出來的技術性 SEO 問題以及對應的解決方案。
Thumbnail
這篇文章教你如何製作側邊欄,包括準備工作、HTML和CSS的部分,還有一些互動效果。文章涵蓋了連結、圖片、超連結、大小、顏色、排版、flex和滑鼠互動等內容。
Thumbnail
這篇文章教你如何製作側邊欄,包括準備工作、HTML和CSS的部分,還有一些互動效果。文章涵蓋了連結、圖片、超連結、大小、顏色、排版、flex和滑鼠互動等內容。
Thumbnail
在 WordPress 網站管理後台中,「顯示項目設定」是一項容易遭人忽略的功能。乍看似乎不起眼,但卻能在特定場合發揮作用。本篇文章將為你說明什麼是「顯示項目設定」及 3 種常見的應用情境。
Thumbnail
在 WordPress 網站管理後台中,「顯示項目設定」是一項容易遭人忽略的功能。乍看似乎不起眼,但卻能在特定場合發揮作用。本篇文章將為你說明什麼是「顯示項目設定」及 3 種常見的應用情境。
Thumbnail
作為一個非常不專業的前端初學者,有陣子常常卡在公司官網,要插入 Youtube 影片無法RWD(響應式)的問題。 跟不熟悉 網頁技術的朋友們介紹,RWD 就是指網頁的排版能跟著螢幕的大小縮放、變化編排,在這個人手一機的時代,特別重要。
Thumbnail
作為一個非常不專業的前端初學者,有陣子常常卡在公司官網,要插入 Youtube 影片無法RWD(響應式)的問題。 跟不熟悉 網頁技術的朋友們介紹,RWD 就是指網頁的排版能跟著螢幕的大小縮放、變化編排,在這個人手一機的時代,特別重要。
Thumbnail
這一篇,我們來稍微討論一下一篇好的SEO文章該怎麼寫,畢竟不想花錢在買關鍵字廣告,SEO是讓公司網站存活的重要關鍵。 一個好的SEO文章重點在於「關鍵字的堆疊」,常常會看到一些垃圾作弊(SPAM)的SEO操作法,就是利用各種垃圾方式,譬如說加隱藏字在背景或在Meta標籤中不斷重複關鍵字之類的,但是
Thumbnail
這一篇,我們來稍微討論一下一篇好的SEO文章該怎麼寫,畢竟不想花錢在買關鍵字廣告,SEO是讓公司網站存活的重要關鍵。 一個好的SEO文章重點在於「關鍵字的堆疊」,常常會看到一些垃圾作弊(SPAM)的SEO操作法,就是利用各種垃圾方式,譬如說加隱藏字在背景或在Meta標籤中不斷重複關鍵字之類的,但是
Thumbnail
標示全部為已讀失效 最近發現留言系統中,"標示全部為已讀"的速度明顯變慢,甚至有時會失效。許多使用者都報告遇到了相同的問題。這實際上是程式設計中一個常見的漏洞。系統沒有充分考慮到整體容量問題與效能,才導致了這樣的情況。(實際原因待查,此處僅為一般解說),當系統開始顯示緩慢或出現其他問題時,通常
Thumbnail
標示全部為已讀失效 最近發現留言系統中,"標示全部為已讀"的速度明顯變慢,甚至有時會失效。許多使用者都報告遇到了相同的問題。這實際上是程式設計中一個常見的漏洞。系統沒有充分考慮到整體容量問題與效能,才導致了這樣的情況。(實際原因待查,此處僅為一般解說),當系統開始顯示緩慢或出現其他問題時,通常
Thumbnail
避免網頁在不同瀏覽器中長不一樣。用 CSS Reset 來「重置」和統一瀏覽器預設樣式。
Thumbnail
避免網頁在不同瀏覽器中長不一樣。用 CSS Reset 來「重置」和統一瀏覽器預設樣式。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News