1. 程式人生 > >多行文字溢位顯示省略號(…)全攻略

多行文字溢位顯示省略號(…)全攻略

大家應該都知道用text-overflow:ellipsis屬性來實現單行文字的溢位顯示省略號(…)。當然部分瀏覽器還需要加寬度width屬性。

  1. overflow: hidden;
  2. text-overflow: ellipsis;
  3. white-space: nowrap;

但是這個屬性並不支援多行文字溢位顯示省略號,這裡根據應用場景介紹幾個方法來實現這樣的效果。

WebKit瀏覽器或移動端的頁面

在WebKit瀏覽器或移動端(絕大部分是WebKit核心的瀏覽器)的頁面實現比較簡單,可以直接使用WebKit的CSS擴充套件屬性(WebKit是私有屬性)-webkit-line-clamp ;注意:這是一個 不規範的屬性(

unsupported WebKit property),它沒有出現在 CSS 規範草案中。

-webkit-line-clamp用來限制在一個塊元素顯示的文字的行數。 為了實現該效果,它需要組合其他的WebKit屬性。
常見結合屬性:

  1. display: -webkit-box; 必須結合的屬性 ,將物件作為彈性伸縮盒子模型顯示 。
  2. -webkit-box-orient 必須結合的屬性 ,設定或檢索伸縮盒物件的子元素的排列方式 。
  3. text-overflow: ellipsis;,可以用來多行文字的情況下,用省略號“…”隱藏超出範圍的文字 。
  1. overflow : hidden;
  2. text
    -overflow: ellipsis;
  3. display:-webkit-box;
  4. -webkit-line-clamp:2;
  5. -webkit-box-orient: vertical;

這個屬性比較合適WebKit瀏覽器或移動端(絕大部分是WebKit核心的)瀏覽器。

跨瀏覽器相容的方案

比較靠譜簡單的做法就是設定相對定位的容器高度,用包含省略號(…)的元素模擬實現;

例如:

  1. p {
  2. position:relative;
  3. line-height:1.4em;
  4. /* 3 times the line-height to show 3 lines */
  5. height:4.2em;
  6. overflow:hidden;
  7. }
  8. p::after {
  9. content:"...";
  10. font-weight:bold;
  11. position:absolute;
  12. bottom:0;
  13. right:0;
  14. padding:020px1px45px;
  15. background:url(http://css88.b0.upaiyun.com/css88/2014/09/ellipsis_bg.png) repeat-y;
  16. }

看demo:

這裡注意幾點:

  1. height高度真好是line-height的3倍;
  2. 結束的省略好用了半透明的png做了減淡的效果,或者設定背景顏色;
  3. IE6-7不顯示content內容,所以要相容IE6-7可以是在內容中加入一個標籤,比如用<span class="line-clamp">...</span>去模擬;
  4. 要支援IE8,需要將::after替換成:after

JavaScript 方案

用js也可以根據上面的思路去模擬,實現也很簡單,推薦幾個做類似工作的成熟小工具:

1.Clamp.js

  1. var module = document.getElementById("clamp-this-module");
  2. $clamp(module,{clamp:3});

DEMO:

2.jQuery外掛-jQuery.dotdotdot

這個使用起來也很方便:

  1. $(document).ready(function(){
  2. $("#wrapper").dotdotdot({
  3. // configuration goes here
  4. });
  5. });

相關推薦

文字溢位顯示省略號(…)

大家應該都知道用text-overflow:ellipsis屬性來實現單行文字的溢位顯示省略號(…)。當然部分瀏覽器還需要加寬度width屬性。 overflow: hidden;text-overflow: ellipsis;white-space: nowrap; 但是這個屬性並不支援多行文字溢位顯

CSS單行、文字溢位顯示省略號(……)解決方案

單行文字溢位顯示省略號(…) text-overflow:ellipsis-----部分瀏覽器還需要加寬度width屬性 .ellipsis{ overflow: hidden; text-overflow:ellipsis; white-space: nowrap; di

CSS實現單行、文字溢位顯示省略號(…)

如果實現單行文字的溢位顯示省略號同學們應該都知道用text-overflow:ellipsis屬性來,當然還需要加寬度width屬來相容部分瀏覽。 實現方法: overflow: hidden; text-overflow:ellipsis; white-spa

CSS實現單行、文字溢位顯示省略號 ...

頁面結構程式碼: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8">

css單行 文字溢位顯示省略號

單行文字溢位顯示省略號 overflow: hidden; text-overflow: ellipsis; white-space: nowrap; 多行文字溢位顯示省略號 overflow: hidden; text-overflow: ellip

單行與文字溢位顯示省略號

需設定寬度才能溢位顯示省略號。 單行文字: .am-text-truncate { word-wrap: normal; /* for IE */ text-overflow: el

css實現單行和文字溢位顯示省略號點點點...

一、單行文字溢位顯示省略號點點點... overflow: hidden; text-overflow:ellipsis; white-space: nowrap; 二、多行文字溢位顯示省略號點點點... display: -webkit-box; -webkit

CSS實現單行、文字溢位顯示省略號

如果實現單行文字的溢位顯示省略號同學們應該都知道用text-overflow:ellipsis屬性來,當然還需要加寬度width屬來相容部分瀏覽。 實現方法: overflow: hidden; text-overflow:ellipsis; white

文字溢位顯示省略號(...)的方法

最近做手機端的專案,商品標題格式要求超出兩行的內容以省略號展示,最初的方法是用css進行控制,具體樣式如下: p { text-overflow: -o-ellipsis-lastline; overflow : hidden; text-over

CSS實現單行、文字溢位顯示省略號

單行文字的溢位顯示省略號overflow: hidden; text-overflow:ellipsis; white-space: nowrap;效果圖:多行文字溢位display: -webkit-box; -webkit-box-orient: vertical; -w

css3實現文字溢位顯示省略號...

我們常用的就是實現單行文字溢位顯示省略號,此時需要定寬度,程式碼如下: .box{width:200px; overflow: hidden; text-overflow:ell

CSS實現文字溢位顯示省略號

單行文字溢位顯示省略號,可以直接使用 text-overflow:ellipsis; white-space:nowrap; <!DOCTYPE html> <html lang="en"> <head> <meta charse

《CSS實現單行、文字溢位顯示省略號

本文轉載於:猿2048網站➵《CSS實現單行、多行文字溢位顯示省略號》 如果實現單行文字的溢位顯示省略號同學們應該都知道用tex

laravel和css 文字溢位顯示省略號的實現方法

首選前端CSS: <style> .text{ width: 300px; border: 1px solid #000000; display: -webkit-box;

單行、文字超出顯示省略號

lock hit 單行 bsp pan over 省略號 span spl 單行 display:inline-block/ block;overflow: hidden; text-overflow:ellipsis; white-space: nowrap;單行、多行文

CSS文字顯示省略號

  比如說有一個需求:最多隻能顯示兩行文字,超過一行則換行,超過兩行則顯示省略號 more-wrap($n) display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: $n; overflow: hid

單行文字文字溢位省略號表示的多種解決方式;調整字元間距;段落首字母大寫縮排效果;

文字溢位省略號表示的實現效果: 1、解決單行文字溢位: 解決方式: 在文字容器樣式中新增 overflow:hidden; text-overflow:ellipsis; white-space: nowrap;  其中overflow:hidden;是在超出元素寬

設定文字超出顯示省略號,在手機端超出部分無法隱藏解決方法

方法一: 跨瀏覽器相容的方案 比較靠譜簡單的做法就是設定相對定位的容器高度,用包含省略號(…)的元素模擬實現; p{ position:relative; line-height:1.4

jquery.ellipsis 使用,文字末尾顯示省略號

自動計算內容寬度(不是字數)截斷,並加上省略號,內容不受中英文或符號限制。 如果根據字數來計算的話,因為不同字元的寬度並不相同,比如l和W,特別是中英文,最終內容寬度會有很大的差異。 jquery.ellipsis.js 依賴jquery,使用方式 $(dom).ellip

文字溢位最後一行顯示省略號

現在的瀏覽器都支援text-overflow:ellipsis屬性,用來實現單行文字的溢位顯示省略號,但是這個屬性並不支援多行文字。那麼有沒有方法在多行文字上實現同樣的效果呢? 1、-webkit-line-clamp  Webkit支援一個名為-webkit-line-clamp的