table 中,如何使得单元格的内容不换行,单元格不被撑开,显示不下的时候在结尾处显示“...”

本文介绍了一种在表格中处理长内容的方法,通过设置CSS样式实现单元格内容的自动换行和省略显示,保持表格整体布局不变。此外,还提供了一个示例,展示了如何在页面缩放时保持部分列宽固定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前的项目做过这种需求,但是由于不是自己亲手实现,所以以为只要使用 text-overflow 就可以实现这个需求了。但实事证明并没有那么简单。下面就把这个需求的实现要点理一下。

先说一下几个要点:

  • table 的 “table-layout”属性要声明为“fixed”
  • 对表格的第一行中的每个单元格设置宽度。我用的是数值,不是百分比。
  • 对可能出现内容很长的单元格,设置以下三个属性:
Css代码  收藏代码
  1. overflow: hidden;  
  2. white-space: nowrap;  
  3. text-overflow: ellipsis;  

好了,就这么多了。下面上代码 :

 

Html代码  收藏代码
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <meta charset="utf-8" />  
  5.   
  6. <style>  
  7.     .dataTable {  
  8.         width: 100%;  
  9.         border: none;  
  10.         border-collapse: collapse;  
  11.         border-spacing: 0px !important;  
  12.         display: table;  
  13.         table-layout:fixed;  
  14.     }  
  15.   
  16.     .dataTable th,.dataTable td {  
  17.         padding: 0px;  
  18.         margin: 0px;  
  19.         border: 1px solid #BEBFD3;  
  20.         overflow: hidden;  
  21.         white-space: nowrap;  
  22.         text-overflow: ellipsis;  
  23.     }  
  24.       
  25.     #col1 {  
  26.         width: 70px;  
  27.     }  
  28.   
  29.     #col2 {  
  30.         width: 220px;  
  31.     }  
  32.   
  33.     #col3 {  
  34.         width: 300px;  
  35.     }  
  36.   
  37.     #col4 {  
  38.         width: 180px;  
  39.     }  
  40. </style>  
  41. <body>  
  42.     <table class="dataTable">  
  43.         <thead>  
  44.             <tr>  
  45.                 <th id="col1">Header1</th>  
  46.                 <th id="col2">Header2></th>  
  47.                 <th id="col3">Header3</th>  
  48.                 <th id="col4">Header4</th>  
  49.             </tr>  
  50.         </thead>  
  51.         <tbody>  
  52.                 <tr>  
  53.                     <td>content1</td>  
  54.                     <td>content2content2content2content2content2content2content2content2content2content2content2content2content2content2content2</td>  
  55.                     <td>content3</td>  
  56.                     <td>content4</td>  
  57.                 </tr>                  
  58.                 <tr>  
  59.                     <td>content1</td>  
  60.                     <td>content2</td>  
  61.                     <td>content3content3content3content3content3content3content3content3content3content3content3content3content3content3content3</td>  
  62.                     <td>content4</td>  
  63.                 </tr>  
  64.         </tbody>  
  65.     </table>  
  66. </body>  
  67. </html>  
  68.               

 代码见附件,可以运行看看效果。

 

另外,如果想在页面放大缩小的过程中,保持某几个列的宽度不变,其他列的宽度自动进行计算的话,可以采用以下的方案:

Html代码  收藏代码
  1. .col1{  
  2.     width: 60%;  
  3. }  
  4.   
  5. .col2{  
  6.     width: 40%;  
  7. }  
  8.   
  9. .col13{  
  10.     width: 200px;  
  11. }  

 以上表示, 表格共有三列,其中,第三列的宽度被固定为了 200px,所以在表格放大缩小的过程中,它的宽度始终保持为 200px,但是表格剩下的宽度将被分配给第一列和第二列,这两列将以 3:2 的比例瓜分剩下的宽度 。

打个比方,表格在放大或者 缩小 之后,它的的宽度 为300px,那么这个时候,表格的三列的宽度将分别为:

Txt代码  收藏代码
  1. 60px  
  2.   
  3. 40px  
  4.   
  5. 200px  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值