截字是一個很惡心的問題。為了照顧表現上的需要,通常需要把過長的句子,比如一個列表中的新聞標題,截短。
通常這由程序員使用後台技術(各種流行的語言,PHP, JSP等)或者前台技術(JavaScript)來處理。我個人傾向於使用前台技術,因為這對提高網頁的親和力(accessibility)有好處。在非桌面型的浏覽器中,用戶可以更方便的掌握信息完整性。
text-overflow是CSS3的一個性質(property),它可以截短過長的字符串,並依據值(value)來決定被截掉部分使用何種方式展現。目前,IE已經實現對其的支持,Opera也有了私有屬性(-o-text-overflow)對其支持,Firefox似乎落後一步……支持的兩者都可使用ellipsis 值,把截掉部分替代成省略號(即ellipsis)。
所以,你要做的只是,把需要截字的元素定好寬度,和overflow一起使用,即可實現效果。
但是Firefox不支持,所以大概你知道我下面要干什麼了。 :)
先可以看看Yahoo某大牛的解決方案:http://blog.360.yahoo.com/blog-ktYYK_s5fqJ2Hu1ryv2QSL0-?p=120。大牛就是大牛,XBL和JavaScript雙管齊下。
然後,我的解決方案是,利用偽類:after增加省略號,再把它定位到右邊即可。效果有點粗糙,但簡潔明了,純CSS實現。
具體過程不說了,看案例,有興趣者看看源碼,很容易理解的。