在没有宽度的表格单元格内添加省略号

Dan*_*ams 5 html css html-table ellipsis

我想省略第二列中的文本,而不对两列中的任何一列硬编码宽度。在只有父元素(表格)具有固定宽度的情况下,这可能吗?

table {
  width: 100px;
  border: 1px solid green;
}

.td1 {
  border: 1px solid blue;
 }

.td2 {
  border: 1px solid red;
 }

.td div {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
Run Code Online (Sandbox Code Playgroud)
<table>
  <tr>
    <td class="td1">Label:</td>
    <td class="td2"><div>thequickbrownfoxjumpsoverthelazydog</div></td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

Sti*_*ers 5

您可以在嵌套表格中执行此操作,我使用 CSS 表格作为示例,并在表格布局的 div 中添加了一个 span 标签。

jsFiddle

table {
  width: 200px;
  border: 1px solid green;
}
.td1 {
  border: 1px solid blue;
}
.td2 {
  border: 1px solid red;
}
.td2 div {
  display: table;
  table-layout: fixed;
  width: 100%;
}
.td2 span {
  display: table-cell;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
Run Code Online (Sandbox Code Playgroud)
<table>
  <tr>
    <td class="td1">Label:</td>
    <td class="td2">
      <div><span>thequickbrownfoxjumpsoverthelazydog</span></div>
    </td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)


Hug*_*lva 1

你需要table-layout: fixed;

更多信息 - https://developer.mozilla.org/en-US/docs/Web/CSS/table-layout

省略号部分的 CSS 没问题,但默认情况下,表格会根据内容宽度计算其宽度,因此表格单元格将与内容一样宽,并且文本永远不会折叠。table-layout: fixed;改变了这一点。这意味着表格将在插入内容之前计算单元格的尺寸,然后内容在渲染时不会影响表格的尺寸。

代价是您的表将不再自动平衡列:

table {
  width: 100px;
  border: 1px solid green;
  table-layout: fixed;
}

.td1 {
  border: 1px solid blue;
 }

.td2 {
  border: 1px solid red;
 }

td div {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
Run Code Online (Sandbox Code Playgroud)
<table>
  <tr>
    <td class="td1">Label:</td>
    <td class="td2"><div>thequickbrownfoxjumpsoverthelazydog</div></td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)