Я пытаюсь бороться с странным поведением - и любая помощь приветствуется.div, показанный с jquery, обрезается
У меня есть длинная и сложный HTML-страница с общей структурой примерно так:
+------------------------------------------+
| Page header |
+-----------------------------+------------+
| | Right |
| Main content | Column |
| | |
+-----------------------------+------------+
В «основном содержании», все действие происходит. Одна из вещей, которые могут произойти, - это щелчок кнопки пользователя, отображается div с absolute
, которая изначально невидима, и ее содержимое заполняется с помощью AJAX (т. Е. Я заранее не знаю, сколько контента есть) ,
Это прекрасно работает, если общая сумма height
этого раздела заканчивается меньше, чем доступная высота «основного содержимого». Если, однако, этот «всплывающий» div заканчивается длинным из-за большого количества контента, то он усекается в нижней части раздела «Основной контент». Поскольку нет ничего ниже, я не могу даже прокрутить вниз, чтобы увидеть весь контент всплывающего окна. Я бы хотел, чтобы «основной контент» увеличивался, чтобы разместить всю высоту всплывающего окна, а страница прокручивается до самого всплывающего окна, но этого не происходит.
Вот CSS для моего "основного содержания":
.content {
width: 770px;
position: relative;
overflow-x: visible;
overflow-y: hidden;
}
И вот CSS для всплывающего окна:
#popupedit {
background-color: #f1f0ec;
width: 770px;
z-index: 100001;
position: absolute;
left: 0px;
top: 0px;
display: none;
}
В HTML popupedit
является прямым потомком content
. В цепи нет ни высоты, ни ограничения максимальной высоты. Итак, почему «контент» не подходит для размещения «всплывающих окон»?
Попробуйте сделать 'переполнение-у:' видно в '.content' – Timm
Возможно, это возможно. К сожалению, по другим причинам я не могу удалить «overflow-y: hidden». Однако, насколько мне известно, это действует только в том случае, если я явно контролирую высоту родителя. В моем случае высота всегда «авто» –
Абсолютные позиционируемые элементы не добавляют к естественной высоте или ширине их родителей. Вот почему ваш содержащий div не приспосабливается к размеру. Для таких вещей есть некоторые хаки, но я бы рекомендовал переместить всплывающее окно снаружи, предпочтительно добавить его непосредственно к элементу body. Это также сделает ваше решение более безопасным OLD-IE. –