CSS設定一行內文字超過寬度不換行

來源:互聯網
上載者:User

當一行文字超過DIV或者Table的寬度的時候,瀏覽器中預設是讓它換行顯示的,如果我們不想讓他換行顯示那要怎麼辦呢?看到這個標題很容易就會想到截斷文字加“...”的做法。

一般的文字截斷(適用於內聯與塊):

==============CSS================
.text-overflow{
display:block;/*內聯對象需加*/
width:31em;
word-break:keep-all;/* 不換行 */
white-space:nowrap;/* 不換行 */
overflow:hidden;/* 內容超出寬度時隱藏超出部分的內容 */
text-overflow:ellipsis;/* 當對象內文本溢出時顯示省略標記(...) ;需與overflow:hidden;一起使用。*/
}
=================================

對於表格的話,定義有一點不一樣:

==============CSS================
table{
width:30em;
table-layout:fixed;/* 只有定義了表格的布局演算法為fixed,下面td的定義才能起作用。 */
}
td{
width:100%;
word-break:keep-all;/* 不換行 */
white-space:nowrap;/* 不換行 */
overflow:hidden;/* 內容超出寬度時隱藏超出部分的內容 */
text-overflow:ellipsis;/* 當對象內文本溢出時顯示省略標記(...) ;需與overflow:hidden;一起使用。*/
}
=================================

註:這個東東只對單行的文字的效,如果你想把它用在多行上,也只有第一行有作用的。 這個寫法只有IE會有“...”,其它的瀏覽器文本超出指定寬度時會隱藏。

自己體會:什麼時候需要使用文字不換行?理論上來說,純英文字母在一個block容器內排列是不會根據容器寬度換行的,它會一直把容器撐大。漢字在沒有特殊定義的情況下是會自動換行的,這本身是一個優點,省了我們很多麻煩,但是也有不好的時候,如:

線上使用者的名字回行了

我們這時是不需要文字會行的,所以給這個文字容器加入white-space:nowrap;屬性,使它自動被頂到下一行。

以上是從別人網上轉過來的,在此補充一點:在table中使用時,除了表頭可以設置寬度以外其它行設置寬度後就不起作用了。另:white-space:nowrap;/* 不換行 */這個在這裡使用也不起作用。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.