У меня есть веб-сайт с 5 горизонтальными div, которые все плавают: слева и имеют% ширины. В левом я хочу иметь текст и полосу прокрутки. Однако полоса прокрутки появляется только тогда, когда я даю ей положение: абсолютное. Попробуйте это в jsfiddle. Когда я это делаю, div игнорирует остальные 4, и они выходят из строя. Как мне обойти это?
Jsfiddle> http://jsfiddle.net/QN8RS/ Добавить позицию: абсолютная; к следующему div в CSS. Вы увидите, что он работает, но divs уходят с места.
#left{
float:left;
background-color:#C00;
width:15%;
height:100%;
overflow:auto;
top: 0px;
bottom: 0px;
}
Вы не указали высоту <body>
поэтому ее высота вычисляется как auto
.
Вы указали высоту .main
как 100%
. Это процент, так как высота его родителя (тела) вычисляется как auto
, вычисленная высота также auto
.
Вы указали высоту #left
как 100%
. Это процент, так как высота его родителя (.main) вычисляется как auto
, вычисленная высота также auto
.
Так как высота auto
, высота такая же высокая, как и для содержания всего содержимого.
Поскольку вы установили overflow: auto
, вы получаете только полосы прокрутки, если контент выше, чем элемент (а это не так).
Установите height: 100%
на элементы html и body, так что вычисленная высота #left
- это высота #left
просмотра, а не auto
.
Причина в том, что вы указали height:100%
на ваш div .main
. 100% чего? Какой родитель?
Если вы укажете высоту тела на 100%, тогда она будет работать.
html, body { height: 100%; }
Проверьте обновленную скрипту: http://jsfiddle.net/QN8RS/2/
Вместо использования поплавков используйте position: absolute;
и left: number%;
(вам нужно будет выяснить, сколько% осталось от каждого элемента).
Посмотрите скрипт: http://jsfiddle.net/QN8RS/3/
Я думаю, что вы ищете: overflow-y: scroll
max-height=100%