【问题标题】:Table overflows parent div when td content is too widetd 内容过宽时表格溢出父 div
【发布时间】:2014-09-17 18:06:32
【问题描述】:

我准备了一个 JSFiddle 来解释/展示我的问题:http://jsfiddle.net/nz96C/

起初看起来不错,但是当我向#firsttd 添加一些文本时,一旦使用了 tds 整个宽度,整个表格就会溢出父 div。我知道如何用 CSS (#firstdiv {width:90px;overflow:hidden;}) 解决这个问题,但我不知道像素的确切数量(百分比不起作用)。另外我不希望第一个 td 中的文本换行。

我希望你能明白我的问题,我什至无法用我的母语解释它。

编辑:我的目标是创建一个表格,无论第一个 td 中的文本有多长,该表格都不应溢出父 div - 无需包装文本。我希望不显示溢出第一个 td 的文本。

【问题讨论】:

  • 很难理解问题出在哪里。你至少能画出你想要的样子吗?

标签: css html-table width overflow


【解决方案1】:

与另一个最近的话题相同的答案:table-layout:fixed; + width。 DEMO

table {
    table-layout:fixed;
    width:100%;
}
td {
    border: 1px solid black;
    overflow:hidden;/* optionnal*/
}
#firsttd {
    white-space: nowrap;
}

编辑:关于下面的评论:

@MatthieuRiegler

表格布局:固定;如果你想要不同宽度的单元格,那就不好了。

这是一个表格布局和单元格宽度可以不同的演示:

table {
  width: 100%;
  table-layout: fixed;
}

table,
td,
th {
  border: 1px solid;
}

thead tr th:nth-child(1) {
  width: 5em;
}

thead tr th:nth-child(2) {
  width: 20%;
}

thead tr th:nth-child(3) {
  width: 7.5em;
}
<table>
  <thead>
    <tr>
      <th>Head Cell</th>
      <th>Head Cell</th>
      <th>Head Cell</th>
      <th>Head Cell</th>
      <th>Head-Cell-Text</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Cell</td>
      <td>Cell</td>
      <td>Cell</td>
      <td>Cell</td>
      <td>Cell</td>
    </tr>
    <tr>
      <td>Cell</td>
      <td>Cell</td>
      <td>Cell</td>
      <td>Cell</td>
      <td>Cell</td>
    </tr>
    <tr>
      <td>Cell</td>
      <td>Cell</td>
      <td>Cell</td>
      <td>Cell</td>
      <td>Cell</td>
    </tr>
    <tr>
      <td>Cell</td>
      <td>Cell</td>
      <td>Cell</td>
      <td>Cell</td>
      <td>Cell</td>
    </tr>
    <tr>
      <td>Cell</td>
      <td>Cell</td>
      <td>Cell</td>
      <td>Cell</td>
      <td>Cell</td>
    </tr>
  </tbody>
</table>

如果不考虑响应性,width + table-layout:fixed 可能只是个坏主意。

【讨论】:

  • 非常感谢!我试过 table-layout:fixed 但我忘了给表格添加宽度。
  • 如果你想要不同宽度的单元格,table-layout:fixed; 不好。
  • @MatthieuRiegler 不是,它是一个非常有用的 CSS 选项 developer.mozilla.org/en-US/docs/Web/CSS/table-layout ,阅读它并学习使用它(为什么以及何时) 不好的是不知道为什么要设置给它一个或另一个价值。任何 table-layout 有一个默认属性,即使你没有设置它,它也会被应用。这是典型的表格布局。有趣的是规则听起来一样;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-25
  • 2012-01-26
  • 1970-01-01
  • 2011-09-29
  • 2013-05-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多