1. 程式人生 > >css 控制文字行數

css 控制文字行數

<!DOCTYPE html>  <html>  <head>  <meta charset="UTF-8" <title></title>  <style type="text/css" .inaline {  overflow: hidden;  white-space: nowrap;  text-overflow: ellipsis;  /*clip  修剪文字。*/  .intwoline {  display: -webkit-box !important; 
overflow: hidden;  text-overflow: ellipsis;  word-break: break-all;  -webkit-box-orient: vertical;  -webkit-line-clamp: 3 </style>  </head>  <body>  <p class="inaline">元素可提供相關頁面的元資訊(meta-information),比如針對搜尋引擎和更新頻度的描述和關鍵詞。 標籤位於文件的頭部,不包含任何內容。 標籤的屬性定義了與文件相關聯的名稱/值對。</p> 
<p style="width: 500px;border: 1px solid red;" class="intwoline">元素可提供相關頁面的元資訊(meta-information),比如針對搜尋引擎和更新頻度的描述和關鍵詞。 標籤位於文件的頭部,不包含任何內容。 標籤的屬性定義了與文件相關聯的名稱/值對。元素可提供相關頁面的元資訊(meta-information),比如針對搜尋引擎和更新頻度的描述和關鍵詞。 標籤位於文件的頭部,不包含任何內容。 標籤的屬性定義了與文件相關聯的名稱/值對。元素可提供相關頁面的元資訊(meta-information),比如針對搜尋引擎和更新頻度的描述和關鍵詞。 標籤位於文件的頭部,不包含任何內容。 標籤的屬性定義了與文件相關聯的名稱/值對。元素可提供相關頁面的元資訊(meta-information),比如針對搜尋引擎和更新頻度的描述和關鍵詞。 標籤位於文件的頭部,不包含任何內容。 標籤的屬性定義了與文件相關聯的名稱/值對。元素可提供相關頁面的元資訊(meta-information),比如針對搜尋引擎和更新頻度的描述和關鍵詞。 標籤位於文件的頭部,不包含任何內容。 標籤的屬性定義了與文件相關聯的名稱/值對。元素可提供相關頁面的元資訊(meta-information),比如針對搜尋引擎和更新頻度的描述和關鍵詞。 標籤位於文件的頭部,不包含任何內容。 標籤的屬性定義了與文件相關聯的名稱/值對。</p> 
</body>  </html>

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

實現方法:

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

效果如圖:
dome1

但是這個屬性只支援單行文字的溢位顯示省略號,如果我們要實現多行文字溢位顯示省略號呢。

接下來重點說一說多行文字溢位顯示省略號,如下。

實現方法1:

?
1 2 3 4 display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden;

效果如圖:
dome2

適用範圍:
因使用了WebKit的CSS擴充套件屬性,該方法適用於WebKit瀏覽器及移動端;

注:

  1. -webkit-line-clamp用來限制在一個塊元素顯示的文字的行數。為了實現該效果,它需要組合其他的WebKit屬性。常見結合屬性:
  2. display:-webkit-box;必須結合的屬性,將物件作為彈性伸縮盒子模型顯示。
  3. -webkit-box-orient必須結合的屬性,設定或檢索伸縮盒物件的子元素的排列方式。

實現方法2:

?
1 2 3 4 5 6 7 p{position:relative;line-height:20px;max-height:40px;overflow:hidden;} p::after{content:"...";position:absolute;bottom:0;right:0;padding-left:40px; background:-webkit-linear-gradient(left,transparent,#fff55%); background:-o-linear-gradient(right,transparent,#fff55%); background:-moz-linear-gradient(right,transparent,#fff55%); background:linear-gradient(toright,transparent,#fff55%); }

效果如圖:
dome3
適用範圍:
該方法適用範圍廣,但文字未超出行的情況下也會出現省略號,可結合js優化該方法。

注:

  1. 將height設定為line-height的整數倍,防止超出的文字露出。
  2. 給p::after新增漸變背景可避免文字只顯示一半。
  3. 由於ie6-7不顯示content內容,所以要新增標籤相容ie6-7(如:…);相容ie8需要將::after替換成:after。