多行文本溢出時出現省略號

多行文本溢出時出現省略號

本文推薦2種方法。css

1. css

tip:只兼容chrome內核的瀏覽器。ff不支持。css3

.box {
    overflow: hidden; /* 溢出時不顯示溢出的內容 */
    text-overflow: ellipsis; /* 發生溢出時使用省略號代替 */
    display: -webkit-box; /* chrome瀏覽器的私有屬性。顯示爲box。 */
    -webkit-box-orient: vertical; /* 垂直排列元素 */
    -webkit-line-clamp: 2; /* 顯示多少行 */
}

延展

word-wrapgit

關鍵字 描述 默認值
word-wrap 規定單詞換行的條件 normal, 在單詞斷字點處換行。 break-word,在單詞內換行。
overflow-wrap,在css3時由word-wrap改成overflow-wrap

text-overflowgithub

關鍵字 描述 默認值
test-overflow 超出盒子的文本如何顯示 clip, 修剪文本。 ellipsis, 顯示省略號。 string, 顯示指定的文本。

white-spaceweb

關鍵字 描述 默認值
white-space 對待空白的方法和是否換行 normal,空白會被瀏覽器忽略。 pre, 保留空白。nowrap, 文本不換行。pre-wrap, 保留空白,正常換行。pre-line,合併空白,保留換行。

box-orientchrome

這個屬性尚未被瀏覽器支持。須要使用各自瀏覽器的私有屬性。npm

關鍵字 描述 默認值
box-orient 子元素如何排序 inline-axis,子元素沿着內聯座標軸(映射到橫向)。 horizontal, 指定子元素在一個水平線上從左到右排列。vertical, 從頂部向底部垂直排列子元素。block-axis, 子元素沿着塊座標軸(映射到垂直)。inherit,繼承父元素。

line-clamp瀏覽器

只有chrome內核的瀏覽器支持本身的私有屬性。 spa

顯示多少行塊級元素。.net

2. js

使用js控制溢出文本如何顯示的方法有不少。這裏推薦一個腳本文件:ellipsis.js

ellipsis.js

名稱 連接
ellipsis 連接 https://www.jsdelivr.com/pack...
ellipsis https://cdn.jsdelivr.net/npm/...
ellipsis git https://github.com/glinford/e...

使用方法。

一、 引入腳本文件

<script src="https://cdn.jsdelivr.net/npm/ellipsis.js@0.1.3/ellipsis.js"></script>

二、 使用

var ell = Ellipsis({
    lines: 3
})
var ele = document.getElementsByClassName('test')
ell.add(ele)

延展

它還有一些配置項。若不配置則使用默認值。

{
    ellipsis: '...', // 默認顯示的替代文本
    debounce: 0, // 延遲多長時間後執行
    responsive: true, // 是否有窗口大小改變時執行
    className: '.clamp', // 默認操做具備這個類的元素。
    lines: 2, // 默認只出現2行元素。
    portrait: null, // 默認不改變,若是你想要在豎屏模式下有不一樣的行數,
    break_word: true // 默認截斷單詞。
}

2018/06/12 by stone

相關文章
相關標籤/搜索