Поскольку было бы сложно включить сюда весь код, есть краткое описание проблемы (и несколько созданных фрагментов позже): есть этот элемент DIV с отображением, установленным на none, который всплывает, установив отображение на блокировку (при некотором событии onclick --- как меню). Поскольку содержимое этого DIV больше, чем вся страница, когда блок DIV.style.display ==, браузер добавляет в свое окно вертикальную полосу прокрутки --- и это нормально. Ну, я решил установить max-height и overflow-y для этого DIV, но у DIV есть хорошая вертикальная полоса прокрутки сама по себе (она работает, как и ожидалось), браузер --- в частности IE11 --- все еще добавляет вертикальную прокрутку- бар к окну, как и в предыдущем случае. Вы можете использовать его для прокрутки всей страницы, но без видимой точки (в нижней части окна просто нет содержимого для прокрутки).
Вот как это выглядит (более или менее) в коде. Сначала CSS:
div.mydiv {
display: none;
position: absolute;
border-width: 1px 0px 0px 0px;
border-color: #BBBBBB black black black;
border-style: solid solid solid solid;
border-radius: 0px 0px 5px 5px;
background-color: white;
padding: 4px;
line-height: 11px;
font-size: 10px;
font-weight: normal;
color: #FFFFFF;
opacity: 1;
left: -6px;
top: 12px;
cursor: default;
box-shadow: 1px 1px 3px #888888, -1px 1px 2px #EEEEEE;
z-index: 1600;
}
Теперь HTML:
<div class="mydiv" style="overflow-y: scroll; max-height: 300px;">...</div>
В FireFox это работает так, как ожидалось, то есть DIV получает свою вертикальную полосу прокрутки, если максимальная высота этого DIV превышает 300 пикселей, а браузер не добавляет в окно вертикальную полосу прокрутки. В IE11 DIV также получает свою полосу прокрутки, но также и окно браузера (только если DIV виден, т.е. div.style.display == block). Любые идеи, как избавиться от поведения этого браузера?
ОБНОВЛЕНИЕ: вот fiddle, чтобы продемонстрировать это, обратите внимание на вертикальную полосу прокрутки во фрейме результатов, которая появляется, когда список показано.
max-height: 100px
иoverflow-y: auto
вызвала рендеринг контейнера пустого (отображаемого в порядке с переполненным или нет содержимым) с очень большой высотой. Исправил с помощьюoverflow-y: scroll
. Обратите внимание, что дочерними элементами являютсяdisplay: block
. - person Sergiu Paraschiv   schedule 10.07.2014