Таблица Html шириной 100% не работает с длинным текстом

У меня следующая структура

<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>

Первый тд занимает 60 пикселей, второй - остальные 100%, но когда у меня есть длинный текст без пробелов и тире, таблица становится больше, чем 100%. Как отобразить неразрывный текст в одну или несколько строк (оба способа приемлемы) и сохранить таблицу на 100% экрана? Я пытался исправить это с помощью overflow-hidden, но это не имеет никакого эффекта.

Вот скриншот проблемы: ссылка

Ответ 1

Установите table-layout : fixed в свой css или <table style='table-layout : fixed'>, который должен исправить его.

Вот пример кода . Проверьте это.

Ответ 2

Существует свойство 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: word-wrap поддерживается в браузерах IE 5.5+, Firefox 3.5+ и WebKit, таких как Chrome и Safari.

Ответ 3

попробуйте следующее:

<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>