日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > CSS >内容正文

CSS

css小经验: 转载 - CSS文本溢出省略号:text-overflow:ellipsis

發(fā)布時(shí)間:2025/4/14 CSS 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 css小经验: 转载 - CSS文本溢出省略号:text-overflow:ellipsis 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  (轉(zhuǎn)載: http://blog.163.com/yinwei_666/blog/static/2036157320101113102733794/

?

很多時(shí)候,比如網(wǎng)站最基本的文章列表,標(biāo)題會(huì)很長(zhǎng),而顯示列表的區(qū)域?qū)挾葏s沒(méi)有這么寬,這時(shí)候最正常的做法就是讓超出寬度的部分文字用省略號(hào)(…)來(lái)表示。通常做法是網(wǎng)站后臺(tái)程序截取。

這個(gè)標(biāo)題其實(shí)已經(jīng)是一個(gè)老生常談的問(wèn)題了。很多時(shí)候,比如網(wǎng)站最基本的文章列表,標(biāo)題會(huì)很長(zhǎng),而顯示列表的區(qū)域?qū)挾葏s沒(méi)有這么寬,這時(shí)候最正常的做法就是讓超出寬度的部分文字用省略號(hào)(…)來(lái)表示。通常做法是網(wǎng)站后臺(tái)程序截取一定的字符然后輸出到前臺(tái)顯示或者前臺(tái)用javascript截取一定的字符,但是通過(guò)控制字?jǐn)?shù)來(lái)截取的話還是存在一個(gè)大問(wèn)題的,因?yàn)橹形暮陀⑽牡淖址麑挾葐?wèn)題,這個(gè)字?jǐn)?shù)不好控制,而且通用性較差。那么有沒(méi)有更好的方法呢,比如直接用CSS來(lái)解決的,當(dāng)然是有的。

text-overflow是一個(gè)比較特殊的屬性,W3C早前的文檔中(目前的文檔中沒(méi)有包含text-overflow屬性,FML!)對(duì)其的定義是:

Name: text-overflow-mode
Value: clip | ellipsis | ellipsis-word?
clip :  不顯示省略標(biāo)記(…),而是簡(jiǎn)單的裁切
ellipsis :  當(dāng)對(duì)象內(nèi)文本溢出時(shí)顯示省略標(biāo)記(…),省略標(biāo)記插入的位置是最后一個(gè)字符。
ellipsis-word :  當(dāng)對(duì)象內(nèi)文本溢出時(shí)顯示省略標(biāo)記(…),省略標(biāo)記插入的位置是最后一個(gè)詞(word)。

?至于為什么一開(kāi)始我說(shuō)text-overflow是一個(gè)比較特殊的樣式呢?因?yàn)槲覀兛梢杂盟嫖覀兺ǔK玫臉?biāo)題截取函數(shù),而且這樣做對(duì)搜索引擎更加友好,如:標(biāo)題文件有50個(gè)漢字,而我們的列表可能只有300px的寬度。如果用標(biāo)題截取函數(shù),則標(biāo)題不是完整的,如果我們用CSS樣式text-overflow:ellipsis,輸出的標(biāo)題是完整的,只是受容器大小的局限不顯示出來(lái)罷了(表現(xiàn)上是超出部分顯示省略標(biāo)記…)。

text-overflow: ellipsis屬性僅是注解,當(dāng)文本溢出時(shí)是否顯示省略標(biāo)記。并不具備其它的樣式屬性定義。我們想要實(shí)現(xiàn)溢出時(shí)產(chǎn)生省略號(hào)的效果。還必須定義:強(qiáng)制文本在一行內(nèi)顯示(white-space:nowrap)及溢出內(nèi)容為隱藏(overflow:hidden)。只有這樣才能實(shí)現(xiàn)溢出文本顯示省略號(hào)的效果。

?參考資料:http://www.52css.com/article.asp?id=602

?

那么,如果我們要給p標(biāo)簽定義text-overflow:ellipsis就可以這么寫(xiě):

?使用樣式前:

使用樣式后:

?

text-overflow 指南:

語(yǔ)法:?
  text-overflow?:?clip?|?ellipsis?
?
  參數(shù):?
  clip?:? 不顯示省略標(biāo)記(...),而是簡(jiǎn)單的裁切
  (clip這個(gè)參數(shù)是不常用的!)
  ellipsis?:? 當(dāng)對(duì)象內(nèi)文本溢出時(shí)顯示省略標(biāo)記(...)
?
  說(shuō)明:?
  設(shè)置或檢索是否使用一個(gè)省略標(biāo)記(...)標(biāo)示對(duì)象內(nèi)文本的溢出。
  請(qǐng)您注意,text-overflow:ellipsis屬性在FF中是沒(méi)有效果的。

  示例:
  div?{?text-overflow?:?clip;?}?

  text-overflow是一個(gè)比較特殊的樣式,我們可以用它代替我們通常所用的標(biāo)題截取函數(shù),而且這樣做對(duì)搜索引擎更加友好,如:標(biāo)題文件有50個(gè)漢字,而我們的列表可能只有300px的寬度。如果用標(biāo)題截取函數(shù),則標(biāo)題不是完整的,如果我們用CSS樣式text-overflow:ellipsis,輸出的標(biāo)題是完整的,只是受容器大小的局限不顯示出來(lái)罷了。

  關(guān)于text-overflow屬性如何應(yīng)用,我們作如下的說(shuō)明講解:

  text-overflow屬性僅是注解,當(dāng)文本溢出時(shí)是否顯示省略標(biāo)記。并不具備其它的樣式屬性定義。我們想要實(shí)現(xiàn)溢出時(shí)產(chǎn)生省略號(hào)的效果。還必須定義:強(qiáng)制文本在一行內(nèi)顯示(white-space:nowrap)及溢出內(nèi)容為隱藏(overflow:hidden)。只有這樣才能實(shí)現(xiàn)溢出文本顯示省略號(hào)的效果。

  測(cè)試結(jié)果:

  一、僅定義text-overflow:ellipsis;?不能實(shí)現(xiàn)省略號(hào)效果

  二、定義text-overflow:ellipsis;?white-space:nowrap;?同樣不能實(shí)現(xiàn)省略號(hào)效果。

  三、同時(shí)應(yīng)用:?text-overflow:ellipsis;?white-space:nowrap;?overflow:hidden;?實(shí)現(xiàn)了所想要得到的溢出文本顯示省略號(hào)效果。

?

?

?

瀏覽器兼容狀況

Firefox不支持這個(gè)屬性!這回,Firefox你也太另類(lèi)了吧!還有別的辦法么,當(dāng)然有,方法還挺多的。
???????? 比如Mozilla developer center推薦的-moz-binding CSS屬性。Mozilla developer center給出的理由是text-overflow沒(méi)有W3C的規(guī)范…但是因?yàn)镕irefox支持XUL,一種XML的用戶界面語(yǔ)言。并且Firefox還支持XBL,一種XML綁定語(yǔ)言,這樣我們就可以使用Mozilla developer center推薦的-moz-binding CSS屬性來(lái)綁定XUL里的ellipsis屬性了。

?

?

1.XUL方式

?

首先,我們創(chuàng)建XUL,它應(yīng)該被保存為ellipsis.xml:?

?然后我們需要把這個(gè)xml文件放到一個(gè)目錄,原來(lái)的css需要加一條,變成這樣

?

?雖然Firefox通過(guò)XUL的方式實(shí)現(xiàn)了ellipsis,但是還是需要注意以下這些問(wèn)題:
1.經(jīng)過(guò)XUL處理過(guò)的文本你將不能被選中,按理說(shuō)-moz-user-select: text; 屬性將允許文本被選中,但是我沒(méi)有試驗(yàn)成功。
2.如果你給父元素綁定了XUL,那么子元素的內(nèi)容將變得不可見(jiàn)。例如:

如果你只是給p節(jié)點(diǎn)綁定了XUL,那么在Firefox下你將看不到haha這個(gè)內(nèi)容。
它的源代碼實(shí)際上是:
<p>It is a long<em>?haha</em>?long long long long text!??</p>

?

2.Javascript方式
既然XUL無(wú)法完美解決Firefox下文字溢出顯示…,那么我們就求助javascript吧,當(dāng)然,并不是古老的截取一定數(shù)目的字符來(lái)實(shí)現(xiàn)。
這里以jQuery為例,代碼如下:

這段js的原理很簡(jiǎn)單,就是通過(guò)不斷的比較寬度值,然后逐個(gè)縮短字符寬度,當(dāng)最后寬度合適的時(shí)候,停止循環(huán),就實(shí)現(xiàn)了文字溢出顯示…的效果。

?

?

?

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/zjfazc/archive/2012/07/07/2580685.html

總結(jié)

以上是生活随笔為你收集整理的css小经验: 转载 - CSS文本溢出省略号:text-overflow:ellipsis的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。