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;/* 不換行 */這個在這裡使用也不起作用。

相關文章

Alibaba Cloud 10 Year Anniversary

With You, We are Shaping a Digital World, 2009-2019

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。