我正在尝试将省略号提供给位于span
元素内的td
元素。问题是当且仅当我给span
元素赋予固定宽度(即像素宽度)时,省略号才有效。但在我的项目中,我不能使用span
元素的固定宽度。必须使用span
在相应的td
元素内完全展开width: 100%
元素。
我的问题是:如何通过在span
元素内完全拉伸td
元素来使省略号正常工作?
span {
width: 100%; /* In pixels, it is working fine */
display: block;
white-space: nowrap;
text-overflow: ellipsis;
overflow:hidden;
}
以下是Fiddle
我正在寻找一个可以是纯css或javascript或jQuery的解决方案。该解决方案应该适用于IE8 +和firefox。
PS:由于某些项目限制,我无法动态计算跨度的宽度。
编辑:我无法限制td元素的宽度,因为我在td元素上实现了可调整大小的列。
答案 0 :(得分:4)
简而言之,您需要添加以下内容:
table {
width: 100%;
table-layout:fixed;
}
原因不在span
元素中,而是因为表的td
元素没有定义33%的宽度 - 它们会根据td
内容的宽度进行扩展。要使它们固定宽度,您需要将table-layout:fixed;
规则应用于table
。
答案 1 :(得分:2)
希望这可以帮到你
.parent-div {
display: -webkit-flex;
display: -moz-flex;
display: flex;
}
.text {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
min-width: 0;
}
.icon {
-webkit-flex: 1;
-moz-flex: 1;
flex: 1;
}
<强> DEMO 强>
答案 2 :(得分:1)
您可以在 td 元素中添加 max-width 属性:
th, td {
width: 33%;
border: 1px solid black;
max-width:200px;
}
这是jsFiddle