Вот основной illustration проблемы:HTML тела меньше, чем его содержание
<html><head><style type="text/css">
html {width: 100%; height: 100%; background: red;}
body {width: 100%; height: 100%; background: green;}
.leftbar, .rightbar {height: 100%; background: blue;}
.leftbar {float: left;}
.rightbar {float: right;}
table {width: 100px; height: 800px; background: black; color: white;
margin: 0 auto 0 auto;}
</style></head>
<body>
<ul class="leftbar"><li>one</li><li>two</li></ul>
<ul class="rightbar"><li>alpha</li><li>beta</li></ul>
<table><tbody><tr><td>blah blah</td></tr></tbody></table>
</body>
</html>
Мы можем сразу увидеть, что плавали ul
элементы, как высокий, как body
, который содержит их, проблема заключается в том, что body
не такой высокий, как table
, который он содержит.
Как сделать body
достаточно большим? В этом примере я хочу, чтобы leftbar
и rightbar
прошли весь путь вниз, насколько позволяет прокрутка, поэтому вы никогда не увидите ни одного пробела ниже них.
_fsvo_ "work". Это недальновидно думать, что только потому, что они работают для вашего конкретного случая использования, они _must_ работают во всех других контекстах, в которых будет доступен ваш контент. –
Они работают в необходимом контексте, а альтернативы * не *. – spraff
Он не очень хорошо отражается на нашем сообществе, что мы проголосовали за действительный ответ, который потенциально решает проблему OP, просто потому, что он не в моде. Таблицы трудно поддерживать и ломают нормальный поток, но они представляют собой интеллектуальное решение нескольких проблем с маневрированием, особенно в мире pre-flexbox. (As is 'display: table;' на элементе нормального блочного уровня.) – XML