2011-12-21 3 views
4

У меня есть две страницы JSP, которые примерно одинаковы. Каждая страница имеет внешний DIV, который имеет свойство/значение position: relative. На каждой странице также есть внутренний DIV, который имеет свойство/значение position: absolute.Абсолютный позиционированный DIV парит над другими элементами

На одной странице абсолютный позиционированный DIV не наводится на другие элементы на странице - он просто перестает перемещаться, прежде чем перемещаться по другим элементам при изменении размера окна.

На другой странице (которая имеет те же самые точные внешние DIV и внутренние свойства и значения DIV), абсолютный позиционированный DIV DOES зависает над другими элементами на странице при изменении размера окна.

Любые мысли о том, почему это может происходить? Я в конечном счете, чтобы обе абсолютные позиционированные DIVs НЕ парить над любые другие элементы на странице ...

Вот фрагмент разметки и CSS вовлеченного ...

CSS
.BODY_OUTLINE {
position: relative;
border:2px outset white;
border-top: none;
font-style: normal;
margin: 0px;
margin-right:7em;
padding-top:0px;
FONT-FAMILY: arial, tahoma, verdana, sans-serif;
width:100%;
}

HTML
<DIV CLASS="BODY_OUTLINE">
...
<DIV STYLE="border:10px outset gray; position:absolute; right:20%; top:20%;">

+0

Это для IE 8 конкретно BTW –

+0

отправьте соответствующий html + css, если вы хотите получить ответ ... – ptriek

+0

Трудно ответить на этот вопрос без некоторой разметки и CSS. –

ответ

1

Абсолютно позиционированные элементы всегда будут нависнуть над другими элементами на странице, если сами эти элементы не будут специально ограничены таким образом, чтобы предотвратить это. Это связано с тем, что элементы находятся вне потока (т. Е. Они игнорируются другими элементами, и они игнорируют большинство других элементов, а исходный родитель является исключением).

Тот факт, что у вас есть одна страница, которая, кажется, ведет себя так, как вы хотите, - это, вероятно, «случайность». Я не могу точно сказать вам причину, потому что вы только разместили код для обертки BODY_OUTLINE и div absolute, но все остальные элементы и css также могут иметь отношение к этой проблеме, поскольку, как я уже говорил, другие элементы имеют для учета абсолютно позиционированного элемента через размер, поля, собственное позиционирование или некоторые из них.

+0

Я думал, что типичное поведение абсолютных элементов было вне потока, поэтому странно, что одна из страниц НЕ делает зависание ... Я постараюсь копать немного глубже чтобы узнать, почему ... Думаю, я также попытаюсь переформатировать страницу таким образом, что мне не нужно использовать абсолютное позиционирование ... спасибо. –

+0

Я закончил перепозиционирование всей страницы, чтобы избежать использования абсолютного позиционирования все вместе ... –

0

Трудно сказать, так как я понятия не имею других элементов на страницах, но я бы попробовать играть немного с Z-индексов на ваших дивы:

.BODY_OUTLINE { 
position: relative; 
z-index:999; /* do this for all elements that have position absolute or relative */ 
} 

<DIV STYLE="border:10px outset gray; position:absolute; right:20%; top:20%; z-index:1"> 
+0

Спасибо за этот комментарий - я попробовал z-index и немного прочитал об этом, но это не помогло эта проблема в частности. Я в конечном итоге отказался от абсолютной позиции на странице все вместе ... –

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