當我們在進行網頁前端開發的時候,一般會取得文章標題,然後一行一行的顯示。但是當標題過長的時候,就會造成換行顯示。還有顯示部分文字訊息時,如果全部顯示就過於繁瑣,會帶來不會的網頁體驗感。雖然我們可以使用overflow:hidden將超過寬度的字元隱藏掉。但是結尾看起來總是會讓人覺得有點僵硬。而且也不利於讓使用者知道後面還有沒顯示完的字元。最好的方法,就是將多餘的字元用省略號來代替。
本章我們就給大家詳細介紹CSS如何讓文字溢出部分顯示省略號的方法。希望對大家有幫助。
一:單行文字溢位顯示省略號...(多為標題的超出部分顯示省略號...)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>CSS如何使文本溢出部分显示省略号?单行超出</title> <style> *{margin: 0px;padding: 0px;} .box{width: 300px;height: 500px;margin: 50px auto;} .overflow{ width:220px; overflow:hidden; white-space: nowrap; text-overflow: ellipsis; -o-text-overflow:ellipsis; } </style> </head> <body> <div class="box"> <p> css 实现单行文本超出长度显示省略号 </p> <p class="overflow"> css 实现单行文本超出长度显示省略号 </p> </div> </body> </html>
以上程式碼的效果圖如下:
其中,white-space:nowrap;表示文字不會換行,在同一行繼續,知道遇到標籤為止;
overflow:hidden;不顯示超過物件尺寸的內容,就是把超出的部分隱藏了;
text-overflow:ellipsis;當文字物件溢出是顯示...,當然也可是設定屬性為clip不顯示點點點;
-o-text-overflow:為了相容於opera瀏覽器;
二:多行文字溢出顯示省略號...
1.直接用css屬性設定(只有-webkit核心才有作用)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>CSS如何使文本溢出部分显示省略号?多行超出</title> <style> *{margin: 0px;padding: 0px;} .box{ width: 280px; height: 62px; margin: 50px auto; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; } </style> </head> <body> <div class="box"> css 实现多行文本超出长度显示省略号,css 实现多行文本超出长度显示省略号, css 实现多行文本超出长度显示省略号 </div> </body> </html>
以上程式碼的效果圖如下:
##其中,行動端瀏覽器絕大部分是WebKit核心的,所以該方法適用於行動端;-webkit-line-clamp 用來限制在一個區塊元素顯示的文字的行數,這是一個不規範的屬性(unsupported WebKit property),它沒有出現在CSS 規範草案中;display: -webkit-box 將物件作為彈性伸縮盒子模型顯示;-webkit-box- orient 設定或檢索伸縮盒物件的子元素的排列方式;text-overflow: ellipsis 以用來多行文字的情況下,用省略號「…」隱藏超出範圍的文字。 2.利用偽類別<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>CSS如何使文本溢出部分显示省略号?多行超出</title> <style> *{margin: 0px;padding: 0px;} .box{ width: 280px; height: 62px; margin: 50px auto; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; } p{position: relative; line-height: 20px; max-height: 40px;overflow: hidden;} p::after{ content: "..."; position: absolute; bottom: 0; right: 0; padding-left: 40px; background: -webkit-linear-gradient(left, transparent, #fff 55%); background: -o-linear-gradient(right, transparent, #fff 55%); background: -moz-linear-gradient(right, transparent, #fff 55%); background: linear-gradient(to right, transparent, #fff 55%); } </style> </head> <body> <div class="box"> <p> css 实现多行文本超出长度显示省略号, css 实现多行文本超出长度显示省略号, css 实现多行文本超出长度显示省略号 </p> </div> </body> </html>以上程式碼的效果圖如下: 此方法適用範圍廣,但文字未超出行的情況下也會出現省略號,可結合js最佳化此方法。 將height設定為line-height的整數倍,防止超出的文字露出。為p::after新增漸層背景可避免文字只顯示一半。由於ie6-7不顯示content內容,所以要新增標籤相容ie6-7(如:…);相容ie8需要將::after替換成:after。 3.利用絕對定位和padding;(跨瀏覽器解決方案)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>CSS如何使文本溢出部分显示省略号?多行超出</title> <style> *{margin: 0px;padding: 0px;} .box{width: 300px;height: 500px;margin: 50px auto;} .con{ position: relative; height: 40px; width: 250px; line-height: 20px; overflow: hidden; padding-right: 12px; } .t{ position: absolute; right: 0; bottom: 0; } </style> </head> <body> <div class="box"> <p class="con"> css 实现多行文本超出长度显示省略号, css 实现多行文本超出长度显示省略号, css 实现多行文本超出长度显示省略号。 <span class="t">...</span> </p> </div> </body> </html>以上程式碼的效果圖:
##這個方法的原則是:首先在包含文字的元素裡,嵌入一個...,然後在包含文字的元素右側留出省略號...的位置(padding-right),最後利用絕對定位將省略號...定位至右側的padding-right區域(右下角)。
以上是css如何讓文字溢出部分顯示省略號? (程式碼實例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!