首頁  >  文章  >  web前端  >  css文字單行超出和多行超出省略號分別如何實現?

css文字單行超出和多行超出省略號分別如何實現?

不言
不言原創
2018-09-19 10:45:372723瀏覽

有時候在設計網頁的時候可能會遇到文字太長而導致頁面不太美觀,那麼如何來解決這個問題呢?本篇文章將為大家介紹關於css文字單行超出省略號以及多行文字超出省略號的實作方法。

首先我們來看看css實作單行文字超出省略號的方法。

css實作單行文字的溢出顯示省略號應該用text-overflow:ellipsis屬性來,當然還需要加寬度width屬來相容部分瀏覽。

css單行文字超出省略號的實作程式碼:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset=utf-8"> 
<title>省略号 test</title> 
<style type="text/css"> 
*{ 
margin:0; 
padding:0; 
} 
body{ 
padding:10px; 
font-family:Arial; 
} 
#test { 
position:relative; 
width:150px; 
height:20px; 
line-height:20px; 
text-overflow:ellipsis; 
white-space:nowrap; 
*white-space:nowrap; 
overflow:hidden; 
border:1px solid #999; 
} 
#test span{ 
position:absolute; 
top:0; 
right:0; 
display:block; 
float:left; 
} 
</style> 
</head> 
<body> 
<div id="test">php中文网php中文网php中文网php中文网php中文网php中文网php中文网</div> 
</body> 
</html>

css單行文字超出省略號的效果如下:

css文字單行超出和多行超出省略號分別如何實現?

#text-overflow:ellipsis屬性只支援單行文字的溢位顯示省略號,如果我們要實作多行文字溢位顯示省略號呢?下面我們就繼續說css實作多行文字超出省略號的方法。 (text-overflow:ellipsis屬性更多內容可參考css手冊

#1、css實現多行文本超出省略號之直接用css屬性設定(只有-webkit內核才有作用)

語法:

  overflow: hidden;  
  text-overflow: ellipsis; 
  display: -webkit-box;  
  -webkit-line-clamp: 2;  
  -webkit-box-orient: vertical;

行動端瀏覽器絕大部分是WebKit核心的,所以此方法適用於行動端;

-webkit -line-clamp 用來限制在一個區塊元素顯示的文字的行數,這是一個不規範的屬性(unsupported WebKit property),它沒有出現在CSS 規範草案中。

display: -webkit-box 將物件顯示為彈性伸縮盒子模型 。

-webkit-box-orient 設定或檢索伸縮盒物件的子元素的排列方式 。

text-overflow: ellipsis 以用來多行文字的情況下,用省略號「…」隱藏超出範圍的文字。

2、css實作多行文字超出省略號之利用絕對定位和padding;(跨瀏覽器解決方案)

語法:

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%);
}

這個方法的原則是:首先在包含文字的元素裡,嵌入一個...,然後包含文字的元素右側留出...的位置(padding-right),最後利用絕對定位將...定位至右側的padding-right區域。
說明:此方法適用範圍廣,但文字未超出行的情況下也會出現省略號,可結合js最佳化此方法。

注意:

將height設定為line-height的整數倍,防止超出的文字露出。

為p::after新增漸層背景可避免文字只顯示一半。

由於ie6-7不顯示content內容,所以要新增標籤相容ie6-7(如:);相容ie8需要將::after替換成:after 。

這篇文章到這裡就結束了,更多關於css文字超出省略號的內容可以關注php中文網。

以上是css文字單行超出和多行超出省略號分別如何實現?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn