首頁 > web前端 > css教學 > 主體

css如何讓文字溢出部分顯示省略號? (程式碼實例)

青灯夜游
發布: 2019-07-17 14:03:50
原創
46685 人瀏覽過

當我們在進行網頁前端開發的時候,一般會取得文章標題,然後一行一行的顯示。但是當標題過長的時候,就會造成換行顯示。還有顯示部分文字訊息時,如果全部顯示就過於繁瑣,會帶來不會的網頁體驗感。雖然我們可以使用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>
登入後複製

以上程式碼的效果圖如下:

css如何讓文字溢出部分顯示省略號? (程式碼實例)

其中,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>
登入後複製

以上程式碼的效果圖如下:

css如何讓文字溢出部分顯示省略號? (程式碼實例)

##其中,行動端瀏覽器絕大部分是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>
登入後複製

以上程式碼的效果圖如下:

css如何讓文字溢出部分顯示省略號? (程式碼實例)

此方法適用範圍廣,但文字未超出行的情況下也會出現省略號,可結合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>
登入後複製
以上程式碼的效果圖:

css如何讓文字溢出部分顯示省略號? (程式碼實例)##這個方法的原則是:首先在包含文字的元素裡,嵌入一個...,然後在包含文字的元素右側留出省略號...的位置(padding-right),最後利用絕對定位將省略號...定位至右側的padding-right區域(右下角)。

以上是css如何讓文字溢出部分顯示省略號? (程式碼實例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板