表格单元格内容超出时显示省略号效果

说明

在前端开发中,经常会遇到需要限制单元格宽度并且内容超出部分显示省略号的的情况。下面就简单的介绍下如何达到这种效果。

准备知识

1. 控制文本不换行

white-space: nowrap;

2. 超出长度时,出现省略号

overflow:hidden;
text-overflow:ellipsis

3. 修改表格布局算法

table-layout:fixed;

table-layout的默认值为automatic,意思是列宽度由单元格内容设定。而fixed意思是列宽由表格宽度和列宽度设定

也就是说当你给表格设定列宽时,实际情况是不起作用的,当单元格内容过多时,依然会把宽度撑开。如果需要让表格的列宽显示方式由自己给单元格定义的列宽决定,就必须使用fixed这个值。注意:1、表格必须设置宽度 2、如果只设置表格宽度,而不设置列宽度的话,列的宽度会平均分配。

代码演示

如下代码所示,表格中安排了姓名、年龄、性别以及地址四列,这几个列的长度分别为10%、20%、30%、40%。

 1 <!doctype html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8" />
 5     <title>表格演示</title>
 6     <style type="text/css">
 7         table{
 8             width: 100%;
 9             table-layout: fixed;
10         }
11         .name{
12             width: 10%;
13         }
14         .age{
15             width: 20%;
16         }
17         .sex{
18             width: 30%;
19         }
20         .addr{
21             width: 40%;
22         }
23         
24     </style>
25 </head>
26 <body>
27     <table border="1" cellspacing="0" cellpadding="0">
28         <thead>
29             <tr>
30                 <th class="name">姓名</th>
31                 <th class="age">年龄</th>
32                 <th class="sex">性别</th>
33                 <th class="addr">地址</th>
34             </tr>
35         </thead>
36         <tbody>
37             <tr>
38                 <td>李四</td>
39                 <td>13</td>
40                 <td></td>
41                 <td>山东</td>
42             </tr>
43             <tr>
44                 <td>李四</td>
45                 <td>13</td>
46                 <td></td>
47                 <td>山东</td>
48             </tr>
49             <tr>
50                 <td>李四</td>
51                 <td>13</td>
52                 <td></td>
53                 <td>山东</td>
54             </tr>
55         </tbody>
56     </table>
57 </body>
58 </html>

 

显示效果如下所示:

很容易可以看出,姓名、年龄、性别以及地址等列的长度分别是10%、20%、30%、40%。

如果将第一个的姓名内容增多,效果简直不忍直视(>﹏<)!

不忍直视(>﹏<)!!

 

如何把单行内容超出部分显示为省略号呢?只需要将单元格设置如下属性:

white-space: nowrap;/*控制单行显示*/
overflow: hidden;/*超出隐藏*/
text-overflow: ellipsis;/*隐藏的字符用省略号表示*/

 话不多说,上代码!

 1 <!doctype html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8" />
 5     <title>表格演示</title>
 6     <style type="text/css">
 7         table{
 8             width: 100%;
 9             table-layout: fixed;
10         }
11         .name{
12             width: 10%;
13         }
14         .age{
15             width: 20%;
16         }
17         .sex{
18             width: 30%;
19         }
20         .addr{
21             width: 40%;
22         }
23         td{
24             white-space: nowrap;/*控制单行显示*/
25             overflow: hidden;/*超出隐藏*/
26             text-overflow: ellipsis;/*隐藏的字符用省略号表示*/
27         }
28     </style>
29 </head>
30 <body>
31     <table border="1" cellspacing="0" cellpadding="0">
32         <thead>
33             <tr>
34                 <th class="name">姓名</th>
35                 <th class="age">年龄</th>
36                 <th class="sex">性别</th>
37                 <th class="addr">地址</th>
38             </tr>
39         </thead>
40         <tbody>
41             <tr>
42                 <td class="name2">李四sssssssssssssssssssssssssssssssssss</td>
43                 <td>13</td>
44                 <td></td>
45                 <td>山东</td>
46             </tr>
47             <tr>
48                 <td>李四</td>
49                 <td>13</td>
50                 <td></td>
51                 <td>山东</td>
52             </tr>
53             <tr>
54                 <td>李四</td>
55                 <td>13</td>
56                 <td></td>
57                 <td>山东</td>
58             </tr>
59         </tbody>
60     </table>
61 </body>
62 </html>

修改后,效果如下:

 

转载于:https://www.cnblogs.com/chenghyi/p/5481542.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值