CSS樣式控制一行文字超出部分顯示省略號 主要使用樣式 text-overflow:ellipsis,但只有 text-overflow:ellipsis屬性還不夠,請看下文。
text-overflow是一個比較特殊的屬性,W3C早前的文檔中(目前的文檔中沒有包含text-overflow屬性,FML!)對其的定義是:
Name: text-overflow-mode
Value: clip | ellipsis | ellipsis-word
clip : 不顯示省略標記(…),而是簡單的裁切
ellipsis : 當對象內文本溢出時顯示省略標記(…),省略標記插入的位置是最後一個字符。
ellipsis-word : 當對象內文本溢出時顯示省略標記(…),省略標記插入的位置是最後一個詞(word)。
至於爲什麼一開始我說text-overflow是一個比較特殊的樣式呢?因爲我們可以用它代替我們通常所用的標題截取函數,而且這樣做對搜索引擎更加友好,如:標題文件有50個漢字,而我們的列表可能只有300px的寬度。如果用標題截取函數,則標題不是完整的,如果我們用CSS樣式text-overflow:ellipsis,輸出的標題是完整的,只是受容器大小的侷限不顯示出來罷了(表現上是超出部分顯示省略標記…)。
text-overflow: ellipsis屬性僅是註解,當文本溢出時是否顯示省略標記。並不具備其它的樣式屬性定義。我們想要實現溢出時產生省略號的效果。還必須定義:強制文本在一行內顯示(white-space:nowrap)及溢出內容爲隱藏(overflow:hidden)。只有這樣才能實現溢出文本顯示省略號的效果。
那麼,如果我們要給p標籤定義text-overflow:ellipsis就可以這麼寫:
p { white-space: nowrap; width: 100%; /* IE6 需要定義寬度 */ overflow: hidden; -o-text-overflow: ellipsis; /* Opera */ text-overflow: ellipsis; /* IE, Safari (WebKit) */ }