table中td内容过长,使得td内容过宽

前言

  本来这只是一个小问题,但是由于项目的特殊需要所以查询了很多资料,这里就记录一下操作,方便后期复习。

参考文档

    https://stackoverflow.com/questions/9789723/css-text-overflow-in-a-table-cell

一、通用的table-layout:fixed

  对于一些不需要动态调整表格宽度的话,那么这种方案无疑是最佳的解决方案(td中的内容无论多少都会以td的宽度为准,不会撑大td的宽度),但是需要对于动态调整列宽度的就比较蛋疼,因为它只以第一列的宽度为准(如果设置了第二列的td宽度,则不生效)

<head>
<style type="text/css">
	table.one{
		table-layout: automatic
	}
	table.two{
		table-layout: fixed;
	}
</style>
</head>
<body>
	<table class="one" border="1" width="500px">
		<tr>
			<td width="20%">1000000000000000000000000000</td>
			<td width="40%">10000000</td>
			<td width="40%">100</td>
		</tr>
		<tr>
			<td>1000000000000000000000000000</td>
			<td>10000000</td>
			<td>100</td>
		</tr>
	</table>

	<table id="table2" class="two" border="1" width="500px">
		<tr>
			<td width="20%">1000000000000000000000000000</td>
			<td width="40%">10000000</td>
			<td width="40%">100</td>
		</tr>
		<tr>
			<td>1000000000000000000000000000</td>
			<td>10000000</td>
			<td>100</td>
		</tr>
	</table>
</body>

  效果如下:
效果图

  结论:
    使用table-layout:fixed可以让table中的td宽度不随内容长度而发生变化

  弊端:
    如果想要通过table的非第一行设置每个td的宽度则不会生效

二、max-width来助攻

td {
 max-width: 100px;
 overflow: hidden;
 text-overflow: ellipsis;
 white-space: nowrap;
}

三、position 方案

<td class="ellipsis">
    <span>This Text Overflows and is too large for its cell.</span>
</td>
.ellipsis {
    position: relative;
}
.ellipsis:before {
    content: '&nbsp;';
    visibility: hidden;
}
.ellipsis span {
    position: absolute;
    left: 0;
    right: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值