无论内容如何,​​强制表列宽始终固定

dat*_*ion 79 html css

我有一个html表table-layout: fixed和一个设置宽度的td.该列仍会展开以保存不包含空格的文本内容.有没有办法解决这个问题,而不是将每个td的内容包装在div中?

示例:http://jsfiddle.net/6p9K3/29/

<table>
    <tbody>
        <tr>
            <td style="width: 50px;">Test</td>
            <td>Testing 1123455</td>
        </tr><tr>
            <td style="width: 50px;">AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</td>
            <td>B</td>
        </tr>
    </tbody>
</table>

table
{
    table-layout: fixed;
}

td
{
    border: 1px solid green;
    overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)

在该示例中,您可以看到具有AAAAAAAAAAAA ...的列尽管已明确设置为50px宽,但仍会展开.

Ari*_*iao 155

指定表格的宽度:

table
{
    table-layout: fixed;
    width: 100px;
}
Run Code Online (Sandbox Code Playgroud)

jsFiddle

  • 惊人!它也适用于`table-layout:fixed; 宽度:100%;`. (5认同)
  • 它修剪内容 (2认同)

Dre*_*son 21

尝试查看以下CSS:

word-wrap:break-word;
Run Code Online (Sandbox Code Playgroud)

Web浏览器默认情况下不应该分解"单词",因此您遇到的是浏览器的正常行为.但是,您可以使用自动换行CSS指令覆盖它.

您需要在整个表格上设置宽度,然后在列上设置宽度."宽度:100%;" 也应该没问题,具体取决于您的要求.

使用自动换行可能不是您想要的,但是在不改变布局的情况下显示所有数据非常有用.

  • 结合Arie Shaw的答案,我得到了我一直在寻找的行为。不管文本如何,该列的宽度始终相同,即使没有空格,它也会包裹文本。 (2认同)

kel*_*son 10

在css之前让桌子坚如磐石.计算表格的宽度,然后使用"控制"行,每个td都有一个明确的宽度,所有这些都加在表格标签的宽度上.

必须要使用正确的HTML首先使用正确的HTML来处理数百个HTML电子邮件,然后使用w/css样式将解决所有IE,webkit和mozilla中的许多问题.

所以:

<table width="300" cellspacing="0" cellpadding="0">
  <tr>
    <td width="50"></td>
    <td width="100"></td>
    <td width="150"></td>
  </tr>
  <tr>
    <td>your stuff</td>
    <td>your stuff</td>
    <td>your stuff</td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

将保持300px宽的表格.观看极端宽度大于宽度的图像

  • w3school 说 html5 不支持 (3认同)
  • `width` 属性已被弃用,您可以使用 CSS `width` 属性,或者使用推荐的 HTML 5 方法来设置列宽,在 `&lt;table&gt;` 之后使用 `&lt;colgroup&gt;` 和 `&lt;col&gt;` 元素标签以及任何“&lt;thead&gt;”、“&lt;tbody&gt;”或“&lt;tr&gt;”元素之前。 (2认同)

Joh*_*her 7

您可以添加divtd,然后风格.它应该按预期工作.

<td><div>AAAAAAAAAAAAAAAAAAA</div></td>
Run Code Online (Sandbox Code Playgroud)

然后是CSS.

td div { width: 50px; overflow: hidden; }
Run Code Online (Sandbox Code Playgroud)