2011-01-10 1 views
63

У меня есть следующий код:CSS: как получить полосы прокрутки для DIV внутри контейнера фиксированной высоты

<div class="FixedHeightContainer"> 
    <h2>Title</h2> 
    <div class="Content"> 
    ..blah blah blah... 
    </div> 
</div> 

CSS-выглядит следующим образом:

.FixedHeightContainer 
{ 
    float:right; 
    height: 250px; 
    width:250px; 
} 
.Content 
{ 
    ??? 
} 

Благодаря своему содержанию, высоту div.Content обычно больше, чем пространство, предоставленное div.FixedHeightContainer. На данный момент div.Content весело простирается со дна div.FixedHeightContainer - совсем не то, что я хочу.

Как указать, что div.Content получает полосу прокрутки (желательно вертикально, но я не суетливый), когда ее высота слишком велика, чтобы соответствовать?

overflow:auto и overflow:scroll ничего не делают, по какой-то причудливой причине.

ответ

109

Установка overflow должна позаботиться об этом, но вам также необходимо установить высоту Content. Если атрибут height не задан, div будет вертикально возрастать так, как ему нужно, и полосы прокрутки не понадобятся.

См Пример: http://jsfiddle.net/ftkbL/1/

+0

Хорошо - спасибо. Поэтому мне нужно указать высоту для div.Content? Я предположил, что это будет работать из контейнера, что он не подходит, и применять полосы прокрутки на этой основе. – David

+6

Если вы указали 'Content' фиксированную высоту, вы не должны указывать фиксированную высоту FixedHeightContainer, потому что вы не можете знать, насколько высок ваш заголовок, поэтому« Content »может быть вытолкнут. См.: Http://jsfiddle.net/ftkbL/2/. Вы должны установить фиксированную высоту ** только ** в элементе с 'overflow: scroll'. См. Http://jsfiddle.net/ftkbL/3/ или http://jsfiddle.net/ftkbL/4/ – RoToRa

+0

Я вижу вашу точку (из первой ссылки), но текст заголовка известен и слишком короткий, чтобы переломить строка, если пользователь не раздул текст до непрактичного размера. – David

 Смежные вопросы

  • Нет связанных вопросов^_^