Прокрутка внутри DIV, который не имеет позиции: абсолютный?

0

У меня есть веб-сайт с 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;
}
  • 0
    попробуйте добавить другое свойство max-height=100%
Теги:
scroll
css-float

4 ответа

2
Лучший ответ

Вы не указали высоту <body> поэтому ее высота вычисляется как auto.

Вы указали высоту .main как 100%. Это процент, так как высота его родителя (тела) вычисляется как auto, вычисленная высота также auto.

Вы указали высоту #left как 100%. Это процент, так как высота его родителя (.main) вычисляется как auto, вычисленная высота также auto.

Так как высота auto, высота такая же высокая, как и для содержания всего содержимого.

Поскольку вы установили overflow: auto, вы получаете только полосы прокрутки, если контент выше, чем элемент (а это не так).

Установите height: 100% на элементы html и body, так что вычисленная высота #left - это высота #left просмотра, а не auto.

  • 0
    Обыграй меня: +1 за быстрое объяснение!
  • 0
    Отлично объяснил, работал как шарм! Спасибо
0

Причина в том, что вы указали height:100% на ваш div .main. 100% чего? Какой родитель?

Если вы укажете высоту тела на 100%, тогда она будет работать.

html, body { height: 100%; }

Проверьте обновленную скрипту: http://jsfiddle.net/QN8RS/2/

0

Вместо использования поплавков используйте position: absolute; и left: number%; (вам нужно будет выяснить, сколько% осталось от каждого элемента).

Посмотрите скрипт: http://jsfiddle.net/QN8RS/3/

0

Я думаю, что вы ищете: overflow-y: scroll

Маленькая скрипка

  • 0
    Это заставляет полосу прокрутки визуализироваться, но, поскольку нет разницы между высотой элемента и высотой содержимого, оно не позволяет ничего прокручивать.
  • 0
    Квентин, но почему он прокручивается, когда я устанавливаю переполнение на авто, а положение на абсолютное, а не сейчас ?! У тебя есть решение?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню