html - 文本溢出:省略号在表格中不起作用
问题描述
我有两个 HTML 元素 - 一个是div
另一个是table
. 它们都有两个元素 - div hasp
和 table has td
。两者的风格相同。
代码:
.container {
display: flex;
flex-direction: row;
}
p, td {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
<div class="container" style="width:100px; background-color: red">
<p width="50px">
Hello world
</p>
<p width="50px">
Hello world
</p>
</div>
<table style="background-color: green">
<tr width="100px">
<td width="50px">Hello World</td>
<td width="50px">Hello World</td>
</tr>
</table>
他们的父母有100px
宽度。实际上,如果它们的大小溢出,我希望它们截断。对于div
,我得到了我想要的输出,但是在 中table
,我没有得到相同的结果。为什么会这样?是因为table
具有不同的默认样式div
吗?
解决方案
这是由于表中的显示属性而发生的。您需要给出 adisplay: block
才能使省略号起作用,但这有点消除了表格的工作方式。
更好的办法是将您的td
内容包装在 a 中div
并更改您的 CSS。
选项 2 将使用max-width to your
td`。
<td width="50px">
<div>Hello World</div>
</td>
CSS 到:
td>div {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 50px
}
或者只需添加最大宽度
.container {
display: flex;
flex-direction: row;
}
p,
td>div,td {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 50px;
}
<div class="container" style="width:100px; background-color: red">
<p width="50px">
Hello world
</p>
<p width="50px">
Hello world
</p>
</div>
<table style="background-color: green">
<tr width="100px">
<td width="50px">
<div>
Hello World</div>
</td>
<td width="50px">
<div>
Hello World</div>
</td>
<td width="50px">
Hello World
</td>
</tr>
</table>
推荐阅读
- networking - 如何从 mininet 中主机的 xterm 获取交换机的 dpid?
- html - 悬停后如何启用下拉菜单?
- c# - Visual Studio 中的 SharePoint 可视化 Webpart 单元测试
- ios - 防止 UICollectionView 在 contentOffset 之外滚动
- typescript - 如何修复 TypeScript 在 localstorage.get 上抛出错误
- extjs - ExtJS 7 Force Froala 编辑器以适应父组件大小
- ios - 我们可以指示 PAServer 执行自定义命令吗?
- spark-submit - 最近有人运行 spark-submit 吗?
- c - 如何获得数组大小均为 10 的 txt 文件和二进制文件的总和?
- amazon-web-services - AWS CloudFormation 模板生成问题