Насколько я знаю, word-wrap: break-word;
не будет работать в таблице , если , если вы также используете table-layout:fixed
.
Я не совсем понимаю, о чем вы просите.Вы говорите, что хотите, чтобы ячейка занимала width
в зависимости от ее содержимого, соответственно растягивалась и переполнялась. это то, что делает таблица.это стандартное поведение таблицы .Единственный случай, когда это не применимо, это когда у вас действительно длинное слово без пробелов.Это приведет к расширению таблицы, независимо.Странное поведение, я знаю.
Если у вас есть последний сценарий, вы должны использовать таблицу фиксированной ширины.Возьмите следующий пример:
<table style="width:250px;">
<tr>
<td>Test</td>
<td>Test Test Test Test Test Test Test Test Test</td>
<td>TestTestTestTestTestTestTestTestTestTestTest</td>
<td>Test Test Test Test Test Test Test Test Test</td>
</tr>
</table>
Обратите внимание, что table
будет размещать всю комнату, в которой он нуждается, из-за среднего столбца.Теперь измените разметку таблицы следующим образом:
<table style="width:250px; table-layout:fixed">
Теперь размер таблицы будет 250px, но средний столбец выльется в следующую ячейку (я знаю, что это немного странно).Теперь мы можем использовать word-wrap:break-word
для обтекания среднего столбца.Добавление этого к объявлению таблицы создаст ожидаемый вывод.
ОБНОВЛЕНИЕ
Итак, я не думаю, что это возможно с CSS.Проблема в том, что вы хотите, чтобы таблица имела ширину самого широкого столбца, за исключением ячейки X
.Чтобы сделать это в table
, мы можем написать немного jQuery для вычисления ширины таблицы:
(Обратите внимание, я добавил <span>
к <td>
, чтобы получить фактическую ширинусодержание. Это может быть заменено другими элементами)
<script type="text/javascript">
$(function() {
var widths = $('table td').map(function() {
return $("span", this).width();
}).get();
var biggest = Math.max.apply(Math, widths);
$("table").width(biggest + "px");
});
</script>
<table>
<tr><td><span>Test Test Test Test</span></td></tr>
<tr><td class="X">Test Test Test Test Test Test Test Test Test</td>
<tr><td><span>Test Test Test Test Test Test</span></td></tr>
</table>