DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS3基礎 >> 5.4 文本溢出text-overflow屬性
5.4 文本溢出text-overflow屬性
編輯:CSS3基礎     

一、text-overflow屬性

我們在浏覽網頁的時候,經常能看到這樣的效果:當文字超出一定范圍時會以省略號顯示,並隱藏多余的文字,如下圖:

圖1 省略號效果顯示文字

這也是一個用戶體驗非常好的設計細節,可以讓用戶知道還有更詳細的內容。

在CSS3中,文本溢出text-overflow用於設置是否使用一個省略標記(…)標示對象內文本的溢出。

語法:

text-overflow:取值;

說明:

text-overflow屬性取值只有2個:

text-overflow屬性取值 屬性值 說明 ellipsis 當對象內文本溢出時顯示省略標記(…) clip 當對象內文本溢出時不顯示省略標記(…),而是將溢出的部分裁切掉

單獨使用text-overflow屬性是無法得到上面圖1效果的。因為text-overflow屬性只是說明文字溢出時用什麼方式顯示,要實現溢出時產生省略號效果,還須定義2個內容:

  • (1)white-space:nowrap;(強制文本在一行內顯示);
  • (2)overflow:hidden;(溢出內容為隱藏);

下面是完整語法:

 
text-overflow:ellipsis; 
overflow:hidden; 
white-space:nowrap;

這3個屬性是必須一起使用才會有效果。

舉例:

在線測試
 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>CSS3 text-overflow屬性</title>
    <style type="text/css">
        #div1
        {
            width:200px;
            height:100px;
            border:1px solid gray;
            text-overflow:ellipsis;
            overflow:hidden;
            white-space:nowrap;
        }
    </style>
</head>
<body>
    <div id="div1"> 學習網成立於2015年4月1日,是一個富有活力的技術學習網站。 學習網為廣大網絡工作者(網頁開發人員、站長等)提供各種精品教程以及最精華資料。 學習網跟其他垃圾采集站不一樣, 學習網中的每一個課程、每一篇文章,甚至每一個知識點,都凝聚了本人的最辛勤的汗水。</div>
</body>
</html>

在浏覽器預覽效果如下:

分析:

由於使用了“white-space:nowrap;”,所有文字都放在了同一行(不換行),然後再使用“text-overflow:ellipsis;”使得溢出該行的部分以省略號形式顯示。

但是如果我們想要實現下面這種效果,該怎麼辦呢?

在上面效果中,文字並非都在同一行,我們只是限定某個容器的寬度和高度,對於超出的部分我們再使用省略號顯示。想要實現這種效果,暫時是無法使用CSS來實現的,必須要借助JavaScript或jQuery才行。希望大家關注站長的新教程“jQuery入門教程”,有機會再在裡面給大家分享一下實現技巧。

疑問

1、有人問,我減少一點文字就沒有溢出了嗎,搞毛線還用text-overflow屬性來對溢出內容進行處理這麼麻煩呢?

哈哈,這個問題問得相當好!其實是這樣的,為了整體布局固定,很多欄目的寬度和高度是固定的,並且做過後端的朋友都知道,對於網站欄目內容更新,我們往往都不會傻乎乎地手動更新,而是使用後台數據庫來自動更新前台數據。由於在給數據庫錄入數據的時候,為了節省時間,我們都是隨便摘取一段描述性文字錄進去就行了,不會考慮前台元素寬度和高度是多少,能容得下多少文字。所以在前台中,我們必須要對元素內容進行溢出處理(如果是僅僅搞前端的話,沒辦法理解這段話也沒關系,記得有這麼一回事就行了)。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved