CSS控制文字只顯示一行,超出部分顯示省略號

以前使用過這個例子,如今總結說明一下: css

先給貼代碼: html

<p style="width: 300px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">
      省略我吧! 
      省略我吧! 
      省略我吧!
      省略我吧! 
      省略我吧! 
      省略我吧!
      省略我吧! 
      省略我吧! 
      省略我吧!
      省略我吧! 
      省略我吧! 
      省略我吧!
 </p>

測試瀏覽器: IE6/7/8/9opera12.02firefox15.0.1chrome21.0.1180.89 m chrome

完整例子:runjs.cn 瀏覽器

如今解釋一下爲何要這樣作: 網絡

一、text-overflow: ellipsis;  佈局

這裏的重點樣式是  text-overflow: ellipsis;  學習

不過話說text-ellipsis是一個特殊的樣式,有關解釋是這樣的:text-overflow屬性僅是註解,當文本溢出時是否顯示省略標記。並不具有其它的樣式屬性定義。要實現溢出時產生省略號的效果還須定義:強制文本在一行內顯示(white-space:nowrap)及溢出內容爲隱藏(overflow:hidden),只有這樣才能實現溢出文本顯示省略號的效果。 測試

簡單理解就是我要把文本限制在一行(white-space: nowrap;),確定這一行是有限制的(width),而且你的溢出的部分要隱藏起來(overflow: hidden;),而後出現省略號( text-overflow: ellipsis)。 spa

我在網上看到有不少人說opera不支持text-overflow,可能由於我用的是最新版本的,已經支持這個屬性了,因此沒辦法測試,不過網上給支持低版本的opera一個辦法,就是-o-text-overflow:ellipsis;至於火狐,也有不少人說不支持,版本問題沒法考證,你們有試過的能夠出來指證一下,這裏有個《在火狐裏 怎樣用CSS限制字數並以點的形式顯示》,能夠參考一下firefox

二、white-space

順便解釋一下white-space的用法

white-space屬性聲明創建佈局過程當中如何處理元素中空白符。(廢話一句,這裏的空白符應該指咱們用鍵盤敲入的空格或回車,由於用 <br>不管white-space設置什麼都會有空格或回車。

下面是wschoolwhite-space可能的值:

normal 默認。空白會被瀏覽器忽略。

pre 空白會被瀏覽器保留。其行爲方式相似 HTML 中的 <pre> 標籤。

nowrap 文本不會換行,文本會在在同一行上繼續,直到遇到 <br> 標籤爲止。

pre-wrap 保留空白符序列,可是正常地進行換行。

pre-line 合併空白符序列,可是保留換行符。

inherit 規定應該從父元素繼承 white-space 屬性的值。


大部份內容來自網絡,僅供本身學習理解之用,牛人笑看之。。

相關文章
相關標籤/搜索