2023-07-28 11:18:55來源:大遷世界
AICube 開放GPT-4給大家使用以及AI工具助手,可以簡化大家生圖的的prompt
這篇文章深入討論了在CSS中裁剪多行文本的方法,以提高網(wǎng)頁的外觀和用戶體驗。作者首先介紹了常見的CSS文本裁剪技術(shù),例如使用text-overflow和overflow屬性。然后,他引入了新的CSS屬性line-clamp,它可以更輕松地裁剪多行文本并添加省略號。作者解釋了如何使用line-clamp屬性設(shè)置最大行數(shù),并指出了一些需要注意的注意事項。
接下來,作者提供了一些使用line-clamp屬性時可能遇到的限制和兼容性問題,并分享了一種使用JavaScript 庫進(jìn)行文本裁剪的替代方法。他詳細(xì)介紹了如何使用該庫來自動裁剪多行文本,并為讀者提供了示例代碼和演示。
(資料圖片僅供參考)
下面是正文~~~
在Web 開發(fā)中,CSS中的文本裁剪一直是一個問題。直到幾年前,裁剪文本只能通過服務(wù)器端語言或JavaScript來完成,因為CSS沒有文本裁剪功能。
單行裁剪在2007年,第一個支持使用CSS 裁剪 文本的瀏覽器是Internet Explorer 7(當(dāng)時IE是主流瀏覽器),它使用了text-overflow: ellipsis;屬性。該屬性使得文本的一行可以被修剪,這在修剪網(wǎng)頁文本方面是一個小的改進(jìn)。
h1{ text-overflow: ellipsis; white-space: nowrap; overflow: hidden;}
使用 Flexbox 模塊的第一個版本進(jìn)行多行裁剪2012年,隨著Chrome中第一次實現(xiàn)CSS Flexbox,第一次支持多行文本修剪。它看起來很有前途,我們網(wǎng)頁開發(fā)人員認(rèn)為這是不再需要服務(wù)器端或JavaScript操作來修剪多行段落的開始。
.line-clamp { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
但是這種喜悅很快就消失了。CSS Flexbox 模塊更新了兩次,之后就沒有留下任何多行特性的痕跡,這個特性是在 CSS Flexbox 的第一次實現(xiàn)中引入的。
對于許多開發(fā)者 - 包括我在內(nèi) - 他們正在使用這個功能,這個功能只被一個舊的非官方CSS模塊支持,這些更新感覺就像是多行修剪功能的死亡。
CSS flexbox版本的歷史:
display: box; /* old syntax from 2009 */display: flexbox; /* unofficial syntax from 2011 */display: flex; /* official 2013 syntax*/
Line-Clamp 重獲新生在2015年7月,Edge瀏覽器決定支持line-clamp功能,使用-webkit前綴,這是舊的CSS Flexbox模塊中的語法。非常不尋常的是,微軟瀏覽器使用了-webkit前綴,這通常只用于Webkit瀏覽器, 如Chrome / Safari和Opera。
2019年7月,它再次發(fā)生了!這次是Firefox瀏覽器決定支持此功能。同樣,以同樣不尋常的方式。
IE,F(xiàn)irefox使用了舊的Flexbox模塊和-webkit前綴。
這兩個主要的瀏覽器,使用兩個不同的瀏覽器引擎——Mozilla的Moz和Microsoft的Edge,決定使用一個Webkit瀏覽器的舊功能。
絕望的時刻需要不擇手段,由于使用–webkit前綴是支持此功能的官方方式最接近的方式,因此他們做出了這個激動人心的決定。
非官方的行數(shù)限制現(xiàn)在成為官方的了主流瀏覽器如Firefox和Edge開始支持非官方的line-clamp功能,這意味著這個功能已經(jīng)成為常態(tài)。
使用line-clamp非常簡單:
在文本容器上定義舊的 CSS Flexbox 屬性display: -webkit-box。使用以下方法定義要顯示的文本行數(shù)-webkit-line-clamp: 3。將舊的flex-direction屬性從舊的 flexbox 添加-webkit-box-orient: vertical。使用overflow: hidden;屬性定義元素。.content p{ display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
使用 Sass Mixin 結(jié)合舊方法和新方法現(xiàn)在我們有兩種通過CSS修剪文本的方法:省略號方法僅適用于單行文本,而line-clamp屬性適用于多行文本修剪。
如果可能的話,我更喜歡使用省略號這種舊的方式,因為它更接近 CSS 中的官方方式。
鑒于此,我創(chuàng)建了一個@mixin,它通過接受一個整數(shù)的可選參數(shù)來同時針對單行修剪和多行修剪。
如果mixin傳遞了一個數(shù)字,它將使用多行clamp方法。如果它沒有收到任何參數(shù),它將使用帶省略號的單行trim方法。這是一個重載函數(shù):
@mixin trim($numLines: null){ @if $numLines != null { display:-webkit-box; -webkit-line-clamp:$numLines; -webkit-box-orient:vertical; overflow:hidden; } @else{ text-overflow:ellipsis; white-space:nowrap; overflow:hidden; display:block; }}
我們可以以兩種不同的方式使用這個mixin:
.foo{ @include trim; /*will use the ellipsis = else result*/}.bar{ @include trim(3); /*will use the line-clamp = if result*/}
事例地址:https://codepen.io/elad2412/pen/Poovzzb
.foo和.bar類的示例結(jié)果:
行數(shù)限制的瀏覽器支持瀏覽器支持非常廣泛,幾乎覆蓋了全球95%的瀏覽器。如果在瀏覽器中line-clamp
不起作用,它只是不會修剪文本。這種回退對于不支持的瀏覽器已經(jīng)足夠好了。
本文轉(zhuǎn)載自微信公眾號「大遷世界」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系大遷世界公眾號。
關(guān)鍵詞:
AICube開放GPT-4給大家使用以及AI工具助手,可以簡化大家生圖的的promp
作者|張哲EasyModeling是我在2021年圣誕假期期間開發(fā)的一個Java注解處
作為程序員,大家肯定都聽說過程序員的35歲危機(jī),有的人剛?cè)肼毘绦騿T這
日本財務(wù)大臣鈴木俊一:密切關(guān)注經(jīng)濟(jì)政策中的物價上漲情況
1、1朵紅玫瑰的花語——情有獨鐘,你是唯一2、2朵紅玫瑰的花語——二人
一、概覽首先和大家分享下業(yè)務(wù)場景和技術(shù)架構(gòu)。文中的Demo數(shù)據(jù)都是脫敏
《歐洲數(shù)據(jù)法》如果頒布,可能會給物聯(lián)網(wǎng)設(shè)備的制造商和軟件供應(yīng)商帶來
微服務(wù)架構(gòu)是由很多小而自治的微服務(wù)組合而成,每個服務(wù)都提供一套獨立
01車載激光雷達(dá)的激光點云通過點云技術(shù),激光雷達(dá)的成像能夠更為清晰、
分組集的定義是多個分組的并集,用于在一個查詢中,按照不同的分組列對
7月27日13時,市氣象臺將溫州市區(qū)暴雨橙色預(yù)警信號升級為暴雨紅色預(yù)警
據(jù)國家發(fā)展改革委7月27日消息國家發(fā)展改革委等六部門近日發(fā)布關(guān)于推動
加強科技支撐,推進(jìn)綠色低碳科技自立自強,是日前召開的全國生態(tài)環(huán)境保
2Q2023,分產(chǎn)業(yè)視角觀察區(qū)域經(jīng)濟(jì),伴隨線下消費復(fù)蘇、地產(chǎn)走弱、出口短
07月27日,中山公用獲深股通增持萬股,最新持股量為萬股,占公司A股總