2010-04-01 3 views
1

Я пытаюсь выполнить следующую раскладку,позиционирование дивы внутри контейнера DIV без содержания верхнего DIV, влияющей на положение нижней DIV

http://www.rae-mx.com/test/css-layout.jpg

и я почти там, кроме для последнего зеленого div, который идет ниже и ниже в зависимости от содержания содержимого (белый) div. Если я установил значение для свойства TOP для зеленого div, а затем добавлю еще больше текста в div контента, зеленый div будет ниже и ниже.

Поскольку зеленый div является дочерним по отношению к основному контейнеру div, а зеленый div - относительно позиционирован, разве он не должен помещаться конкретно в положение, указанное его значением TOP? Если я ошибаюсь ... может кто-нибудь, пожалуйста, скажите мне, как я могу сделать так, чтобы зеленый div всегда отображался в одном и том же месте в контейнере (серый) div, независимо от высоты содержимого/белого div?

Я попытался вставить код css здесь, но возникли проблемы с броуром. вы можете увидеть источник тестового сайта/css по адресу http://www.rae-mx.com/test

tia для справки.

ответ

0

Я думаю, вы не понимаете, как работает относительное позиционирование. Если что-то помечено как position: relative, то это делает ничего для позиционирования этого элемента. Однако любые элементы-потомки с position: absolute позиционируют относительно этого элемента.

Так основной скелет за то, что вы хотите:

#main { position: relative; } 
#menu { position: absolute; top: 10; right: 10; } 
#content { position: absolute; top: 30; } 
#contact { position: absolute; top: 180; right: 10; } 

Посмотрите на Absolute and Relative Positioning. Это называется относительным + абсолютным позиционированием.

+0

спасибо cletus, я собираюсь попробовать то, что вы предложили ... просто любопытно: если основной контейнер настроен на относительный, а зеленый div, который я хочу установить как абсолютный, не повлияет на контактный div на контент или высоту divs, помещенные выше (сначала в html-разметке)? – GR7

+0

cletus, я просто проверил ваши предложения, и все же у меня такая же проблема. Я определяю значения верхнего левого значения так, чтобы контакт div был помещен туда, где я его хочу, но если я добавлю больше текста в div контента, контактный div будет нажат ниже, чем предполагается. есть ли способ избежать этого и не влиять на контактное положение div верхним содержимым div? – GR7

+0

безразлично. Я использовал верхний левый, а не нижний правый. относительный + абсолютный и нижний правый для дочернего div. спасибо cletus – GR7

0

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

И помните: с позицией: абсолютный 0,0 верхним левым углом первых (ближе к элементу, при ходьбе от элемента и к корню) родителю с позицией: относительный или позиция: абсолютная

+0

благодарит Мартина. Поскольку cletus включил ссылку на полезную статью и образец разметки для моей проблемы, я отметил свой ответ как правильный. – GR7

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