解決text-overflow: ellipsis;不生效的問題

coyan發表於2021-09-09

按照text-overflow: ellipsis;使用規則,在標籤樣式中新增該屬性未生效,例如:
寫道
.text {
text-overflow: ellipsis;
}

<div class="text">長文字長文字長文字長文字長文字長文字長文字長文字長文字長文字長文字長文字長文字長文字</div>

     之後,發現並沒有達到我們想要的預期效果,其實還需要另外2個CSS屬性的支援:

寫道
.text {
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}

<div class="text">長文字長文字長文字長文字長文字長文字長文字長文字長文字長文字長文字長文字長文字長文字</div>

     其中,white-space是設定文字不換行,overflow設定標籤超出部分自動隱藏,另外提醒,該CSS屬性在某些瀏覽器上不生效,如果不需要照顧不相容的瀏覽器,比如IE,可以放心大膽使用。

當把text-overflow設為ellipsis時文字溢位內容就能顯示為省略標記,而設為clip時就能把文字溢位的部分裁切掉,不過在表格裡面使用text-overflow後依舊不能隱藏超出的文字,具體解決方法祥看本文
在w3cschool中css3中有個文字相關的屬性text-overflow,當把它設為ellipsis時文字溢位內容就能顯示為省略標記,而設為clip時就能把文字溢位的部分裁切掉,當然,前提是設定好兩個屬性,那就是white-space:nowrap(強制文字在一行內顯示)及overflow:hidden(溢位內容為隱藏),也就是要同時有

 程式碼如下:

{
text-overflow:ellipsis或clip;
white-space:nowrap;
overflow:hidden;
}
因為之前有用過不少次這個屬性,而且用得也都很順利,所以最近在弄一些table的時候遇到了td內的內容太多而出現換行從而影響整體的美觀的問題,所以我想把文字不換行而且讓超出的文字能顯示為省略號,於是我就很自然的就去用了上面那三屬性並且也為td設定了長度和寬度,結果神了奇,一直沒把超出的文字內容給換成省略號,嘗試排除了各種我覺得有可能的影響後依舊不能解決,於是我只好去google一下,後來終於找到了原因,就是要在table的樣式裡定義一個屬性 table-layout:fixed,綜上,要想解決表格裡面使用text-overflow後依舊不能隱藏超出的文字的問題,就必須完整的使用下面這些屬性
程式碼如下
td{
text-overflow:ellipsis或clip;
white-space:nowrap;
overflow:hidden;
width:**px;
}
table{
table-layout:fixed;
}
還有如果想滑鼠移動上去時顯示被隱藏的文字內容,還可以設定
程式碼

td:hover
{
text-overflow:inherit;
overflow:visible;
}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2236/viewspace-2817269/,如需轉載,請註明出處,否則將追究法律責任。

相關文章