宽度为100%的Html表不适用于长文本

时间:2011-11-18 11:43:16

标签: html css html-table

我有以下结构

<table cellspacing="0" cellpadding="0" width="100%">
<tr>
    <td style="width:60px;">
        ...
    </td>
    <td>
        <div style="width:100%;overflow-x:hidden;">
            PROBLEMS ARE HERE
        </div>
    </td>
</tr>
...
</table>

第一个td占用60px,第二个占用100%的剩余部分,但是当我有一些没有空格而没有破​​折号的长文本时,表格变得大于100%。 如何在一行或多行显示不可破坏的文本(两种方式都可以接受)并将表保持在100%的屏幕上? 我试图通过溢出隐藏修复此问题,但它没有效果。

以下是问题的屏幕截图:link

3 个答案:

答案 0 :(得分:20)

在你的css中设置table-layout : fixed或者<table style='table-layout : fixed'>来解决它。

这是code sample。看看吧。

答案 1 :(得分:6)

有一个CSS3属性,word-wrap:break-word;可以完全满足您的需求。但不幸的是,它不适用于表格单元格。我认为您需要重新考虑您的结构,选择无桌面设计。

我为你写了这个例子

<style>
section { /* your table */
    display:block;
    width:300px;
    background-color:#aaf;
}
section:after {display:block; content:''; clear:left}

div { /* your cells */
    float:left;
    width:100px;
    background-color:#faa;
    word-wrap:break-word;
}
</style>

<section>
    <div>Content.</div>
    <div>Loooooooooooooooooooooooooooooooooooooooong cat.</div>
</section>

P.S:在IE 5.5 +,Firefox 3.5+以及Chrome和Safari等WebKit浏览器中支持word-wrap

答案 2 :(得分:4)

尝试以下方法:

<table style="word-break:break-all;" cellspacing="0" cellpadding="0" width="100%">
<tr>
    <td style="width:60px;">
        ...
    </td>
    <td>
        <div style="width:100%;overflow-x:hidden;">
            PROBLEMS ARE no longer HERE !
        </div>
    </td>
</tr>
...
</table>