測試瀏覽器: IE6/7/8/9、opera12.02、firefox15.0.1、chrome
代碼如下 |
複製代碼 |
<p style="width:200px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">省略我吧 省略我吧! 省略我吧!省略我! </p> |
如果我們要給p標籤定義text-overflow:ellipsis就可以這麼寫:
代碼如下 |
複製代碼 |
p { white-space: nowrap; width: 100%; /* IE6 需要定義寬度 */ overflow: hidden; -o-text-overflow: ellipsis; /* Opera */ text-overflow: ellipsis; /* IE, Safari (WebKit) */ } |
現在解釋一下為什麼要這樣做:
1、text-overflow: ellipsis;
這裡的重點樣式是 text-overflow: ellipsis;
不過話說text-ellipsis是一個特殊的樣式,有關解釋是這樣的:text-overflow屬性僅是註解,當文本溢出時是否顯示省略標記。並不具備其它的樣式屬性定義。要實現溢出時產生省略符號的效果還須定義:強制文本在一行內顯示(white-space:nowrap)及溢出內容為隱藏(overflow:hidden),只有這樣才能實現溢出文本顯示省略符號的效果。 簡單理解就是我要把文本限制在一行(white-space: nowrap;),肯定這一行是有限制的(width),並且你的溢出的部分要隱藏起來(overflow: hidden;),然後出現省略符號( text-overflow: ellipsis)。
2、white-space
順便解釋一下white-space的用法
white-space屬性聲明建立版面配置階段中如何處理元素中空白符。(廢話一句,這裡的空白符應該指我們用鍵盤敲入的空格或斷行符號,因為用 或<br>無論white-space設定什麼都會有空格或斷行符號。)
完全執行個體
代碼如下 |
複製代碼 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>省略符號 test</title> <style type="text/css"> *{ margin:0; padding:0; } body{ padding:10px; font-family:Arial; } #test { position:relative; width:150px; height:20px; line-height:20px; text-overflow:ellipsis; white-space:normal; *white-space:nowrap; overflow:hidden; border:1px solid #999; } #test span{ position:absolute; top:0; right:0; display:block; float:left; } #test span:after{content:"...";} </style> </head> <body> <div id="test">小蝦奮鬥起來吧,加油加油加油加油加油加油<span></span></div> </body> </html> |