首頁  >  文章  >  web前端  >  多行文字溢位顯示省略號(…)

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

PHPz
PHPz原創
2017-03-12 17:13:581629瀏覽

大家應該都知道用<a href="http://www.php.cn/wiki/868.html" target="_blank">text-</a><a href="http://www.php.cn/wiki/923.html" target="_blank">overflow</a>:ellipsis屬性來實作單行文字的溢位顯示省略號(…)。當然部分瀏覽器也需要加寬度<a href="http://www.php.cn/wiki/835.html" target="_blank">width</a>屬性。

css 程式碼:
  1. #
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;

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

WebKit瀏覽器或行動端的頁面

在WebKit瀏覽器或行動端(絕大部分是WebKit核心的瀏覽器)的頁面實作比較簡單,可以直接使用WebKit的CSS擴充屬性(WebKit是私有屬性)-webkit-line-clamp ;注意:這是一個不規範的屬性(unsupported WebKit property),它沒有出現在CSS 規範草案中。

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

  1. <a href="http://www.php.cn/wiki/927.html" target="_blank">display</a>: -webkit-box; 必須結合的屬性,將物件作為彈性伸縮盒子模型顯示。

  2. -webkit-box-orient 必須結合的屬性 ,設定或檢索伸縮盒物件的子元素的排列方式 。

  3. text-overflow: ellipsis;,可以用來多行文字的情況下,用省略號「…」隱藏超出範圍的文字 。

css 程式碼:
  1. #
    overflow : hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
##這個屬性比較合適WebKit瀏覽器或行動裝置(絕大部分是WebKit核心的)瀏覽器。

具體範例可以查看http://www.php.cn/

跨瀏覽器相容的方案

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

例如:

css 程式碼:
# #
p {
    position:relative;
    line-height:1.4em;
    /* 3 times the line-height to show 3 lines */
    height:4.2em;
    overflow:hidden;
}
p::after {
    content:"...";
    font-weight:bold;
    position:absolute;
    bottom:0;
    right:0;
    padding:0 20px 1px 45px;
    background:url(http://www.php.cn/) repeat-y;
}
這裡注意幾點:

    #height高度真好是
  1. line-height

    的3倍;

  2. 結束的省略好用了半透明的png做了減淡的效果,或是設定背景顏色;
  3. IE6- 7不顯示
  4. content

    內容,所以要相容IE6-7可以是在內容中加入一個標籤,例如用b0482130bb1a3e2b7bb7177a9aa50ca8...d6d448110e0324953b5d7bc1e2b276ce去模擬;

  5. 要支援IE8,需要將
  6. ::after

    替換成:after;

JavaScript

方案

js

#也可以依照上面的想法去模擬,實作也很簡單,推薦幾個做類似工作的成熟小工具1.Clamp.js

下載及文件位址:http://www.php.cn/

使用也非常簡單:


js
程式碼:
#
var module = document.getElementById("clamp-this-module");
$clamp(module, {clamp: 3});
  1.  

2.

jQuery

外掛程式-jQuery.dotdotdot##這個使用起來也很方便:

##js

程式碼:

$(document).ready(function() {
$("#wrapper").dotdotdot({
//configuration goes here
});
});

以上是多行文字溢位顯示省略號(…)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn