首先你容納文字的容器要設置固定的寬高,然后加上以下屬性
創(chuàng)新互聯公司歡迎聯系:18980820575,為您提供成都網站建設網頁設計及定制高端網站建設服務,創(chuàng)新互聯公司網頁制作領域10余年,包括軟裝設計等多個方面擁有多年的網站維護經驗,選擇創(chuàng)新互聯公司,為企業(yè)保駕護航!
white-space:
nowrap;
word-break:
keep-all;
text-overflow:
ellipsis;
第一行的代碼,是不允許文字換行
第二行的代碼,是不允許把單詞拆開
第三行的代碼,就是文本超出容器,以省略號顯示
望采納!
語法:
text-overflow:clip/ellipsis;
默認值:clip
適用于:所有元素
clip: 當對象內文本溢出時不顯示省略標記(...),而是將溢出的部分裁切掉。
ellipsis: 當對象內文本溢出時顯示省略標記(...)。
在使用的時候,有時候發(fā)現不會出現省略標記效果,經過測試發(fā)現,使用ellipsis的時候,必須配合overflow:hidden; white-space:nowrap; width:具體值;這三個樣式共同使用才會有效果。
在WebKit瀏覽器或移動端(絕大部分是WebKit內核的瀏覽器)的頁面實現比較簡單,可以直接使用WebKit的CSS擴展屬性(WebKit是私有屬性)-webkit-line-clamp ;注意:這是一個 不規(guī)范的屬性(unsupported WebKit property),它沒有出現在 CSS 規(guī)范草案中。
-webkit-line-clamp用來限制在一個塊元素顯示的文本的行數。 為了實現該效果,它需要組合其他的WebKit屬性。常見結合屬性:
display: -webkit-box; 必須結合的屬性 ,將對象作為彈性伸縮盒子模型顯示 。
-webkit-box-orient 必須結合的屬性 ,設置或檢索伸縮盒對象的子元素的排列方式 。
text-overflow: ellipsis;,可以用來多行文本的情況下,用省略號“…”隱藏超出范圍的文本。
這個屬性只合適WebKit瀏覽器或移動端(絕大部分是WebKit內核的)瀏覽器
效果如圖所示:
從效果上來看,它的優(yōu)點有:
1.響應式截斷,根據不同寬度做出調整
2.文本超出范圍才顯示省略號,否則不顯示省略號
3.瀏覽器原生實現,所以省略號位置顯示剛好
但是缺點也是很直接,因為 -webkit-line-clamp 是一個不規(guī)范的屬性,它沒有出現在 CSS 規(guī)范草案中。也就是說只有 webkit 內核的瀏覽器才支持這個屬性,像 Firefox, IE 瀏覽器統統都不支持這個屬性,瀏覽器兼容性不好。
使用場景:多用于移動端頁面,因為移動設備瀏覽器更多是基于 webkit 內核,除了兼容性不好,實現截斷的效果不錯。
效果如圖:
適合場景:文字內容較多,確定文字內容一定會超過容器的,那么選擇這種方式不錯。但文字未超出行的情況下也會出現省略號,可結合js優(yōu)化該方法。
注:
css:
js:
網上有很多介紹關于使用JavaScript實現多行文本溢出省略的辦法,有的使用插件,有的使用自己封裝好的JavaScript文件,但是,我認為,還是自己寫的js比較好用。
插件:
是待省略的意思。要省略就要它不換行white-space:nowrap。不換行就會有超出部分顯示,這超出的部分要讓它隱藏overflow:hidden;最后就是它要顯示省略號text-overflow:ellipsis。
縮進文本:把 Web 頁面上的段落的第一行縮進,這是一種最常用的文本格式化效果。
CSS?提供了 text-indent 屬性,該屬性可以方便地實現文本縮進。
通過使用 text-indent 屬性,所有元素的第一行都可以縮進一個給定的長度,甚至該長度可以是負值。
這個屬性最常見的用途是將段落的首行縮進,下面的規(guī)則會使所有段落的首行縮進 5 em。
擴展資料:
使用負值:
text-indent 還可以設置為負值。利用這種技術,可以實現很多有趣的效果,比如“懸掛縮進”,即第一行懸掛在元素中余下部分的左邊:
p {text-indent: -5em;}
不過在為 text-indent 設置負值時要當心,如果對一個段落設置了負值,那么首行的某些文本可能會超出瀏覽器窗口的左邊界。為了避免出現這種顯示問題,建議針對負縮進再設置一個外邊距或一些內邊距:p {text-indent: -5em; padding-left: 5em;}。
參考資料來源:百度百科-CSS 文本
一些列表標題會要求顯示兩行+……
單行文本溢出顯示省略號(…)
text-overflow:ellipsis-----部分瀏覽器還需要加寬度width屬性
END
多行文本溢出顯示省略號
WebKit瀏覽器或移動端的頁面
在WebKit瀏覽器或移動端(絕大部分是WebKit內核的瀏覽器)的頁面實現比較簡單,可以直接使用WebKit的CSS擴展屬性(WebKit是私有屬性)-webkit-line-clamp ;注意:這是一個 不規(guī)范的屬性(unsupported WebKit property),它沒有出現在 CSS 規(guī)范草案中。
-webkit-line-clamp用來限制在一個塊元素顯示的文本的行數。 為了實現該效果,它需要組合其他的WebKit屬性。常見結合屬性:
display: -webkit-box; 必須結合的屬性 ,將對象作為彈性伸縮盒子模型顯示 。
-webkit-box-orient 必須結合的屬性 ,設置或檢索伸縮盒對象的子元素的排列方式 。
text-overflow: ellipsis;,可以用來多行文本的情況下,用省略號“…”隱藏超出范圍的文本。
這個屬性比較合適WebKit瀏覽器或移動端(絕大部分是WebKit內核的)瀏覽器
跨瀏覽器兼容的方案
比較靠譜簡單的做法就是設置相對定位的容器高度,用包含省略號(…)的元素模擬實現;
這里注意幾點:
height高度真好是line-height的3倍;
結束的省略好用了半透明的png做了減淡的效果,或者設置背景顏色;
IE6-7不顯示content內容,所以要兼容IE6-7可以是在內容中加入一個標簽,比如用span class="line-clamp".../span去模擬;
要支持IE8,需要將::after替換成:after;
END
JavaScript 方案
用js也可以根據上面的思路去模擬,實現也很簡單,推薦幾個做類似工作的成熟小工具
1.Clamp.js
下載及文檔地址:使用也非常簡單:
步驟閱讀
2.jQuery插件-jQuery.dotdotdot
這個使用起來也很方便:
這個事情只用CSS是解決不了的。
1、使用模板函數,比如Smarty就有這樣的函數,可以截取部分內容顯示,(但測試似乎對中文效果不好。)
2、使用服務器端程序,把文件切割后再顯示。
3、使用JS來處理文字內容。
說個解決思路,你看看能不能給你一些參考:
單選CSS做文本溢出截取時,使用的就是overflow:hidden,然后再寫一個span.../span加在后面。這樣只是隱藏了溢出的部分。多行的時候,是否能用絕對定位和層的概念實現這個。寫一個內容只有span.../span的層,絕對定位到父Box的右下角,問題是如果沒溢出的話,就多了這個顯示了。