2012-04-24 3 views
0

У меня есть следующая скрипка: http://jsfiddle.net/nVWt5/ со структурой типа:перерыва слово внутри таблицы ячейки DIV

<table style="table-layout:fixed"> 
<tr> 
<td> 
<span style="display:table-cell"> 
<div style="word-wrap:break-word;">really_long_text_here_no_spaces</div> 
</span> 
</td> 
</tr> 
</table> 

Как я могу сделать обтекание текста, не изменяя стиль отображения пролета в? Пробел в настоящее время не может изменяться по мере его автогенерации.

Спасибо!

ответ

2

Удалить display:table-cell, так как здесь он не служит никакой полезной цели и, по-видимому, предотвращает обертывание.

Элемент span не может содержать элемент div по правилам HTML, поэтому вы должны действительно что-то сделать для разметки.

Обратите внимание, что в отличие от того, что предлагают названия, word-wrap:break-word не имеет отношения к словам; вместо этого он механически разбивает струны без учета правил человеческих языков.

+0

Спасибо, я могу изменить пролет в div. Однако я не могу удалить отображение: table-cell, поскольку у него есть цель для другой функциональности, и я не хочу иметь регрессии. Таким образом, проблема заключается в том, как разбить текст, сохраняя отображение табличных ячеек. –

+0

Тогда вам нужно описать проблему в форме, которая охватывает эту другую функциональность. (Любая функциональность, которая полагается на 'display: table-cell', не будет работать на некоторых старых браузерах, которые все еще используются, поэтому было бы лучше найти другой подход, если это возможно.) –

+0

Мне нужно только поддерживать IE8 и FF3. 5 или более поздней. Они поддерживают отображение табличных ячеек. Другая функциональность - это согласование текстов определенным образом, и я бы предпочел не менять его на что-то еще, так как это потребует значительных рефакторингов. –

Смежные вопросы