Ответ 1
Ниже я включаю некоторую разметку, которая проверяет HTML/CSS для достижения того, что, как я полагаю, вы хотите.
Существует стиль ячейки фиксированной ширины .fixedcell
и стиль ячейки с изменяемой шириной .fluidcell
. Я установил фиксированную ширину (75 пикселей в этом примере) просто для лучшей иллюстрации.
Жидкости шириной имеют width:auto
, поэтому они заполняют ширину оставшегося табличного пространства; у них также важно есть white-space:nowrap
, поэтому текст не расширяет ячейку по высоте (white-space:pre
тоже работает); и, наконец, у них есть overflow:hidden
, поэтому текст не переполняет ширину и не делает вещи уродливыми; в качестве альтернативы вы можете установить overflow: scroll, чтобы в этих ячейках была полоса прокрутки, когда/при необходимости.
Таблица установлена на 100% ширины, поэтому она будет расширяться, чтобы соответствовать экрану/и т.д. По мере необходимости. И важная вещь в отношении стиля таблицы - это table-layout:fixed
, это заставляет таблицу придерживаться макета страницы, а не автоматически измерять ее размер на основе собственного содержимого (table-layout:auto
).
Я также добавил некоторые границы, чтобы проиллюстрировать границы таблицы и ячеек.
<html>
<head>
<title>Table with auto-width sizing and overflow hiding.</title>
<style type="text/css">
table {width:100%; border:solid 1px red; table-layout:fixed;}
table td {border:solid 1px green;}
.fixedcell {width:75px;}
.fluidcell {width:auto; overflow:hidden; white-space:nowrap;}
</style>
</head>
<body>
Table with one fluid column:
<table>
<tr>
<td class="fixedcell">row 1</td>
<td class="fluidcell">a whole bunch of content could go here and it still needs to fit nice into the cell without mucking things up</td>
<td class="fixedcell">fixie</td>
<td class="fixedcell">another</td>
</tr>
</table>
Table with two fluid columns:
<table>
<tr>
<td class="fixedcell">row 1</td>
<td class="fluidcell">a whole bunch of content could go here and it still needs to fit nice into the cell without mucking things up</td>
<td class="fluidcell">blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah</td>
<td class="fixedcell">fixie</td>
<td class="fixedcell">another</td>
</tr>
</table>
</body>
</html>