2015-08-18 3 views
1

У меня есть базовая сетка бутстрапа, которую мне нужно, чтобы вертикально заполнить окно независимо от прокрутки. В настоящее время, если окно прокручивает все стили, резко заканчиваются в точке прокрутки.поддерживать высоту 100% с вертикальной прокруткой окна

Мне нужно, чтобы оба divs были длиной самого длинного из двух разделов и прокручивались друг с другом.

В этом случае возникает проблема: https://jsfiddle.net/frxpngcn/2/ Спасибо.

<div class="row"> 
<div id="nav" class="col-xs-2 col-sm-2 col-md-2 col-lg-2"> 
    <ul> 
     <li>Link</li> 
     <li>Link</li> 
     <li>Link</li> 
     <li>Link</li> 
     <li>Link</li> 
     <li>Link</li> 
     <li>Link</li> 
    </ul> 
</div> 
<div id="main" class="col-xs-10 col-sm-10 col-md-10 col-lg-10"> 
    <h1>Header</h1> 
    <p>content</p> 
    <p>content</p> 
    <p>content</p> 
    <p>content</p> 
    <p>content</p> 
    <p>content</p> 
    <p>content</p> 
    <p>content</p> 
    <p>content</p> 
    <p>content</p> 
    <p>content</p> 
    <p>content</p> 
    <p>content</p> 
    <p>content</p> 
    <p>content</p> 
    <p>content</p> 
    <p>content</p> 
    <p>content</p> 
    <p>content</p> 
    <p>content</p> 
    <p>content</p> 
    <p>content</p> 
    <p>content</p> 
    <p>content</p> 
</div> 
</div> 

html, body, .row { 
    height: 100%; 
} 

#nav { 
    height: 100%; 
    background-color: green; 
} 

#main { 
    height: 100%; 
    background-color: yellow; 
} 
+0

add overflow: auto; to #main – Bosc

+1

Можете ли вы показать мне скрипку? При этом я теряю свою полосу прокрутки. – noclist

+1

https://jsfiddle.net/8a74be3L/ имеется полоса прокрутки, вам просто нужно прокрутить ее вправо, чтобы увидеть ее. В bootstrap .row нужно быть внутри класса .container – Bosc

ответ

2

Переполнение CSS https://jsfiddle.net/8a74be3L/

Эта опция делает основной прокрутки Div не страница

#main { 
    height: 100%; 
    background-color: yellow; 
    overflow-y:scroll; 
} 

CSS Отступы https://jsfiddle.net/8a74be3L/3/

способ сделать это в чистом css - добавить глупое количество отступов на дно, а затем скрыть переполнение в классе контейнера.

.main-container { 
    overflow: hidden; 
} 

#nav { 
    float: left; 
    background-color: green; 
    padding-bottom: 500em; 
    margin-bottom: -500em; 
} 

#main { 
    float: left; 
    background-color: yellow; 
    padding-bottom: 500em; 
    margin-bottom: -500em; 
} 

JS Вариант https://jsfiddle.net/8a74be3L/2/

Этот параметр использует JS, чтобы получить высоту основного DIV и установить его в качестве высоты нав дел.

function resize() { 
    var h = document.getElementById('main').offsetHeight; 
    document.getElementById("nav").style.height = h + "px"; 
} 
resize(); 
window.onresize = function() { 
    resize(); 
}; 
+0

Спасибо за опции – noclist

+0

Привет, я нашел еще одну проблему, с которой я столкнулся с решением javascript. Либо nav, либо главный div могут быть длиннее в зависимости от содержимого основного div. Если я нахожусь на странице, где ни навигатор, ни основное содержимое не занимают полное окно браузера, высота отключается в конце самого длинного div. Я бы хотел, чтобы высота в этом случае продолжалась до нижней части окна. Спасибо вам за помощь. – noclist

+0

вы можете изменить main в контейнере для обоих и использовать те же js, чтобы установить высоту основного https://jsfiddle.net/8a74be3L/4/ – Bosc