如何使用CSS的「text-overflow: ellipsis;」屬性限制內容字數?
設計版面時,為了讓網頁更整齊,常需要限制文字的字數,當文字超過限制時會自動顯示"…"的刪節號。
今天Astral Web要介紹如何限制字數,讓版面更整齊順眼;但這部分會用到程式碼較為複雜,需要有程式背景的人進行操作。
首先,單純使用CSS時,我們可以利用text-overflow: ellipsis; 這個屬性達到這個效果。
STEP 1:
先準備HTML
<div class="box"> <p class="ellipsis">Astral Web是一群對網路充滿熱情的團隊,我們相信網路的力量無遠弗屆,人人都有機會開創網路事業。一邊享受網路事業帶來的樂趣,一邊秉持著工作即是玩樂的精神,不斷激發各種靈感為客戶提高收益,提供最完善的服務。</p> </div>
STEP 2:
首先設定區塊的大小
.box { width: 300px; padding: 10px; border: #ef5c28 2px solid; }
STEP 3:
接著在文字的區塊使用 text-overflow: ellipsis;
注意:在使用text-overflow: ellipsis; 時,需要一併設定 white-space: nowrap; 及 text-overflow: ellipsis; 才會有效果。
.ellipsis { overflow:hidden; white-space: nowrap; text-overflow: ellipsis; }
原始效果:
不過使用 text-overflow: ellipsis; 屬性時、文字只能單行出現。若是想要多行文字、就必須要用javascript來判斷。示範如下:
STEP 1:
準備HTML
<div class="box"> <p class="JQellipsis">Astral Web是一群對網路充滿熱情的團隊,我們相信網路的力量無遠弗屆,人人都有機會開創網路事業。一邊享受網路事業帶來的樂趣,一邊秉持著工作即是玩樂的精神,不斷激發各種靈感為客戶提高收益,提供最完善的服務。</p> </div>
STEP 2:
載入jquery
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
STEP 3:
<script> $(function(){ var len = 50; // 超過50個字以"..."取代 $(".JQellipsis").each(function(i){ if($(this).text().length>len){ $(this).attr("title",$(this).text()); var text=$(this).text().substring(0,len-1)+"..."; $(this).text(text); } }); }); </script>
效果:
希望本篇文章能夠幫到需要的朋友,若有相關問題歡迎洽詢!
Comments (6)
請問這段jquery語法為?
您好~文章中遺失的內容已經補上了!希望有幫助到您,謝謝
不好意思 請問
重新整理的時候
原本消失的字會閃一下
效果呈現沒有問題
可是這樣的情況要怎麼解決呢?
建議您使用chrome 開發工具檢查問題。如果您使用chrome瀏覽器,按下F12、檢查"console"、這邊可以看到錯誤訊息。
您好,想詢問使用javascript來判斷的方法,是否可以點擊「…」後顯示全部的文字呢?想詢問做法,感謝您
您好,關於 Javascript 可以點擊 「…」 後 addclass 來判斷 css的刪減。
有問題再隨時與我們聯繫,謝謝!