本文推薦2種方法。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
使用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