兼容IE和FF的單行溢出文本顯示省略號

單行文本的控制,以前是由程序員完成的,實現截字效果。
今天介紹的方法兼容IE FF,看下面的詳細介紹:
為了更符合實際,用一個div裝起要調試的內容,并為這個div定義一個寬度。
例如:
css代碼:
div{width:200px;}
html代碼:
<div>
<span>腳本之家-中國網頁設計,網頁制作第一站 - www.dbjr.com.cn</span>
</div>
在IE中實現是非常簡單的,CSS 如下:
span {
display:block;
width:200px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
但在FF中用上面的樣式是實現不了的,因為text-overflow: ellipsis;是IE中.特有的(非CSS標準)?,F在在FF下看到的僅僅只是把溢出的內容切除了,說到"溢出切除",這下說到點子上了,在FF中實現就要用到非常規(guī)的方法,一個標簽作切除內容,再加一個標簽作填補省略號用,并且加起來的長度就能超過容器的寬度,本例指的就是DIV的寬度200px,實現的想法就是這樣。那么繼續(xù)進一試驗,關于切除內容,這個已經基本上解決了,那就來說補省略號,不用JS,用CSS實現的話就要用到偽對象after,偽對象不懂的就要先去溫故或百度一下。先從HTML下手,為span標簽外再加一層p標簽(當然你也可以加其它標簽的)
html代碼:
<div>
<p><span>腳本之家-中國網頁設計,網頁制作第一站 - www.dbjr.com.cn</span><p>
</div>
我們再為這個P標簽加樣式。
CSS:
p:after{
content:"...";
}
這樣還不行,因為省略號是有寬度的,這樣省略號就跳到一下行了,下面要做的就是讓span 加省略號的寬度不大于容器寬度(準確的說是相等),并且讓省略號緊跟內容的內容,下就是解決上面這些問題的CSS樣式:
p{clear:both;}
p span{float:left;
max-width:175px;
}
p:after{
content:"...";
}
這里還要補充的一點是關于p span 的寬度用了"max-width"這個屬性,IE不能解釋該屬性,而FF可以,這樣就避開了IE對SPAN寬度的重新應用。上面說得有亂,歸納如下:
html代碼:
<div>
<p><span>腳本之家-中國網頁設計,網頁制作第一站 - www.dbjr.com.cn</span><p>
</div>
css代碼:
div{
width:200px;/*容器的基本定義*/
height:200px;
background-color:#eee;
}
/* IE下的樣式 */
p span{
display: block;
width:200px;/*對寬度的定義,根據情況修改*/
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}/* FF 下的樣式 */
p{clear:both;}
p span{float:left;
max-width:175px;
}
p:after{
content:"...";
}
相關文章
- 字符串過長,不雅觀,如何實現多余文字街去掉并用省略號顯示,苦思冥想多日,發(fā)現使用CSS就可輕松搞定,下面將經驗心得與大家分享一番,望幫助更多的失足新手2014-06-16
- 這篇文章主要介紹了css實現字符串截斷并加省略號示例,需要的朋友可以參考下2014-05-08
- 可以通過css樣式實現DIV元素中文本超長后自動截斷并以省略號結尾,一般情況下都是使用javascript,其實使用純CSS樣式也可以做到2014-05-05
- 這篇文章主要介紹了css樣式怎么顯示省略號,即當超過自定義寬度時隱藏顯示省略標記,比較實用,需要的朋友可以參考下2014-04-18
- DIV CSS text-overflow文本有溢出時顯示css省略號clip ellipsis樣式基礎知識與用法實例經驗教程篇2014-11-12
- 兼容瀏覽器的CSS控制字符寬度省略號效果,是非常實用的,由于FF對溢出顯示省略號的屬性支持不好。因而在進行編碼時,應用到了一個HACK和FF的私有屬性,大家在學習時注意區(qū)2009-01-03
- 在項目中我們經常需要在文本過長時顯示,將文本超出的部分內容用省略號代替,基于css代碼是怎么實現的呢?下面腳本之家小編通過分析本文給大家詳解,感興趣的朋友一起學習2016-01-19