2016-12-18 7 views
1

Следуя советам по таким статьям, как этот из CSS-Tricks (https://css-tricks.com/almanac/properties/o/overflow/), я построил двухпанельный пользовательский интерфейс, используя Bootstrap для приложения с угловым приводом. Эти две панели предназначены для вертикальной прокрутки независимо друг от друга и со страницы в целом. Это поведение работает в соответствии с последней версией проекта, здесь: https://monstermancer.herokuapp.com/ (возможно, потребуется сократить окно браузера, чтобы просмотреть прокрутку панели в действии без входа в систему). В случае, если это актуально, в этой версии приложения используются SystemJS и Angular 2.0.0-rc5.Почему переполнение: прокрутка не работает в этом интерфейсе?

Недавно, после того, как я внес изменения в Webpack, используя Angular CLI и обновил версию с угловым выражением до версии 2.2, но сохраняя при этом все HTML и LESS то же самое, это поведение прокрутки больше не работает. Смотрите в «действие» здесь: https://monster-mash.herokuapp.com/

У меня есть codepen вверх, что изолирует вид образца из приложения и забот себя только поведение прокрутки здесь: https://codepen.io/Polisurgist/pen/bBOZzm

Соответствующего CSS от этого пера:

body { 
    overflow: hidden; 
} 
.scroll { 
    overflow-y: scroll; 
    overflow-x: hidden; 
    height: 100%; 
    padding-bottom: 50px; 
} 
::-webkit-scrollbar{ 
    display:none; 
} 

Мое предположение, что как-то я пропустил критический немного CSS, когда я переехал код из старой версии на новую, хотя я не могу поставить то, что может быть недостающий кусок. Я помещаю angularJS и webpack на этот вопрос не потому, что думаю, что любой из этих действительно вызвал проблему, но потому что какая-то проблема, возможно, была представлена ​​в качестве залога для меня, делающего это обновление.

Основной вопрос: В чем причина того, что две панели в этом интерфейсе не прокручиваются по вертикали?

ответ

0

Проблема заключается в том, что размер #content, .row, col-sm8 автоматически регулирует высоту для размещения внутреннего содержимого, поэтому свиток никогда не появляется.

Чтобы решить эту проблему и получить нужное поведение прокрутки, вам необходимо сделать все родительские элементы 100%. Вы можете сделать это, добавив в ваш CSS (добавить другой класс Col в список селекторов, как): необходимому

html, 
body, 
.row, 
.col-sm8, 
#content{ 
    height:100%; 
} 
+0

Это очень полезно ... Я не могу сделать _exactly_, что в моем случае, но это говорит мне, где начать исправление проблемы. Я все еще очень смущен, почему он работает в одном случае, а не в другом. – Polisurgist

+0

@ Даниэль Хотя это решение проблемы, оно не объясняет, что CSS изменил между https://monstermancer.herokuapp.com/ (рабочий) и https://monster-mash.herokuapp.com/ (сломан) , в течение которого OP не вносил изменений в свой CSS. –

+0

Итак, проблема заключалась в том, что масштабирование родительских элементов соответствовало этому контенту, хотя настройка правил CSS, как они есть в этом ответе, не является выполнимой из-за того, как они взаимодействуют с Bootstrap. Кажется, что работает, используя 'height: 100vh' вместо' 100% ', поскольку это устанавливает высоту контейнера прокрутки на основе видового экрана, а не родительского элемента. Возможно, мне не хватает причины, почему это не очень хорошая идея. – Polisurgist

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