У меня есть таблица, состоящая из строки заголовка, строки нижнего колонтитула и строки между данными.«height: 100%» на таблице делает его выше, чем у родителя
Все html, body, table
имеют высоту 100%
. Средний ряд также имеет td
с height: 100%
, так что он аккуратно заполняет оставшееся пространство: http://jsfiddle.net/9cEhc/2/.
Однако, когда данные не помещаются в средний ряд, я хотел бы показать полосу прокрутки, чтобы таблица сохраняла 100-процентную высоту, и вы можете прокручивать среднюю строку. Как-то это не работает; вместо этого таблица растет в вертикальном направлении (хотя CSS по-прежнему утверждает, что ее высота должна быть 100%), а полоса прокрутки отображается, но отключена (так как нет ничего, чтобы прокручиваться, когда таблица растянулась): http://jsfiddle.net/9cEhc/3/.
Таким образом, таблица установлена на height: 100%
, но, хотя тело является, например, 456 пикселей высотой, таблица (прямой ребенок тела) имеет высоту 1368 пикселей, чего не должно быть.
HTML:
<table>
<tr>
<td>
header
</td>
</tr>
<tr class="fillup">
<td>
<!-- much data that doesn't fit in the row -->
</td>
</tr>
<tr>
<td>
footer
</td>
</tr>
</table>
CSS:
html, body, table, tbody {
width: 100%;
height: 100%;
}
html, body, table, tbody, tr, td {
padding: 0;
margin: 0;
}
.fillup td {
height: 100%;
overflow-y: scroll;
}
Как примечание стороны, я хотел бы получить эту работу на Chrome. Я не против столько других браузеров.
Как предотвратить растягивание таблицы в случае слишком большого количества данных и вместо этого отобразить полосу прокрутки для средней строки?
Это не решает проблему. –
Нет, извините. Это тот случай, когда содержимое в средней строке * * подходит. Я ищу решение для нерабочего случая, когда слишком много контента (http://jsfiddle.net/9cEhc/3/). – pimvdb
Я забыл записать это только решает проблему, что таблица становится больше, чем ее родитель. – Niels