прокручиваемый div внутри контейнера
У меня есть следующий HTML: http://jsfiddle.net/fMs67/. Я бы хотел, чтобы div2 соблюдал размер div1 и прокручивал содержимое div3.
Это возможно?
Благодарю!
UPDATE-1:
Это более сложный случай, который я упростил, когда задал вопрос: http://jsfiddle.net/Wcgvt/. Мне нужно каким-то образом, чтобы заголовок + это sibling div не переполнял родительский размер div.
Ответы
Ответ 1
Добавление position: relative
родителя и max-height:100%
; на div2 работает.
<div id="div1" style="height: 500px;position:relative;">
<div id="div2" style="max-height:100%;overflow:auto;border:1px solid red;">
<div id="div3" style="height:1500px;border:5px solid yellow;">hello</div>
</div>
</div>
</body>
Обновление. Ниже приведен пример "обновленный" и ответ. http://jsfiddle.net/Wcgvt/181/
Секрет заключается в использовании box-sizing: border-box
и некоторых дополнений, чтобы сделать вторую высоту div 100%, но перемещайте ее вниз на 50 пикселей. Затем заверните содержимое в div с overflow: auto
чтобы содержать полосу прокрутки. Обратите внимание на z-индексы, чтобы сохранить весь текст по выбору - надеюсь, что это поможет, спустя несколько лет.
Ответ 2
Если вы поместите overflow: scroll
по фиксированной высоте div
, div
будет прокручиваться, если содержимое занимает слишком много места.
Ответ 3
Вместо overflow:auto
, попробуйте overflow-y:auto
. Должно работать как шарм!
Ответ 4
Это то, что вы хотите?
<body>
<div id="div1" style="height: 500px;">
<div id="div2" style="height: inherit; overflow: auto; border:1px solid red;">
<div id="div3" style="height:1500px;border:5px solid yellow;">hello</div>
</div>
</div>
http://jsfiddle.net/fMs67/1/
Ответ 5
Я только что добавил (переполнение: прокрутка;) в (div3) с фиксированной высотой.
см. скрипку: - http://jsfiddle.net/fMs67/10/
Ответ 6
function start() {
document.getElementById("textBox1").scrollTop +=5;
scrolldelay = setTimeout(function() {start();}, 40);
}
function stop(){
clearTimeout(scrolldelay);
}
function reset(){
var loc = document.getElementById("textBox1").scrollTop;
document.getElementById("textBox1").scrollTop -= loc;
clearTimeout(scrolldelay);
}
//adjust height of paragraph in css
//element textbox in div
//adjust speed at scrolltop and start
Ответ 7
Я создал расширенную версию, основанную на скрипке Трей Копленд, которая, я думаю, больше похожа на то, что вы хотели. Добавлено здесь для будущих ссылок на тех, кто приезжает сюда позже. Пример скрипта
<body>
<style>
.modal {
height: 390px;
border: 5px solid green;
}
.heading {
padding: 10px;
}
.content {
height: 300px;
overflow:auto;
border: 5px solid red;
}
.scrollable {
height: 1200px;
border: 5px solid yellow;
}
.footer {
height: 2em;
padding: .5em;
}
</style>
<div class="modal">
<div class="heading">
<h4>Heading</h4>
</div>
<div class="content">
<div class="scrollable" >hello</div>
</div>
<div class="footer">
Footer
</div>
</div>
</body>
Ответ 8
Самый простой способ как в этом примере:
<div>
<div style=' height:300px;'>
SOME LOGO OR CONTENT HERE
</div>
<div style='overflow-x: hidden;overflow-y: scroll;'>
THIS IS SOME TEXT
</DIV>
Вы можете увидеть тестовые примеры на: https://www.w3schools.com/css/css_overflow.asp