Я пытаюсь отобразить полосу прокрутки в ячейке таблицы, содержимое которой может увеличиться по сравнению с исходным размером ячейки таблицы, и я не хочу растянуть всю таблицу.
Вот пример на jfiddle . Как видите, он работает в Google Chrome, но не работает ни в Firefox, ни в IE: они просто ведут себя так, как будто переполнения не было: прокрутка вообще. Не пробовал в Safari, но я подозреваю, что это тоже не сработает.
Итак, кто здесь виноват, Chrome за реализацию чего-то, что не должно поддерживаться, или все остальные? Обновление: , чтобы быть ясным, переполняется не сама ячейка, а div, который я вставил в нее. Код выглядит так:
<table>
<tr>
<td class="header">
<div class="header">Header</div>
</td>
</tr>
<tr>
<td>
<div class="scroll">
... VERY BIG CONTENT HERE ...
</div>
</td>
</tr>
<tr>
<td class="footer">
<div class="footer">Footer</div>
</td>
</tr>
</table>
Вы можете увидеть все это на jfiddle .
Я пытаюсь добиться компоновки, при которой доступное пространство между верхним и нижним колонтитулом полностью заполняется и , если пространство исчерпано, тогда оно получает полоса прокрутки, а не все окно. Я пришел к пониманию, даже если вкратце описать переполнение стека, то, что с помощью одного только CSS, используя только DIV, это невозможно (использование абсолютного позиционирования не вариант, поскольку элементы извлекаются из нормального потока и «экстремальное» изменение размера окна приведет к перекрытию элементов).
Обновление: модель flexbox , кажется, именно то, что требуется в этих случаях. Тем не менее, я полагаю, что мы не можем полагаться на то, что он будет широко реализован.