как расположить элемент поверх другого элемента?

у меня есть меню и поле поиска. Я хотел бы поместить окно поиска вместе с пунктами меню. Но мое меню строится в другом файле в div под названием "custommenu", который использует следующий css:

#custommenu {
  position:relative;
  z-index:999;
  font-size: 14px;
  margin: 0 auto;
  padding: 10px 16px;
  width: 918px;
  background-color: #FB0A51; 
  border-top-left-radius: 10px 10px; 
  -moz-border-top-left-radius: 10px 10px;
  border-top-right-radius: 10px 10px; 
  -moz-border-top-right-radius: 10px 10px;
}

тогда как у меня есть окно поиска в отдельном файле, который выглядит так:

 <div class="header">
   some code
   <div class="quick-access">
      some code
   <php echo $this->getChildHtml('topSearch') ?>;
   </div>
 </div>

Я попытался добавить следующее в файл css, чтобы окно поиска находилось в верхней части меню, но это не сработало

 .header .form-search { 
   position:absolute; 
   right:29px;  
   z-index:1000; 
   top: 80px;  
   width:315px;  
   height:30px;  
   padding:1px 0 0 16px; 
 }

все еще окно поиска получает спрятано за меню. Я хотел бы иметь поле поиска в меню. Как мне это сделать?

EDIT: вот css div, который содержит поле поиска,

 .header { width:930px; margin:0 auto; padding:10px; text-align:right; position:relative; z-index:10; border-top:3px solid #3C3C42;}
 .header .quick-access { float:right; width:600px;margin-top:-125px; padding:28px 10px 0 0; }
 .header .form-search { position:relative; top: 100px;left: 300px; z-index:9999; width:315px; height:30px; padding:1px 0 0 16px; }

и вот как это выглядит прямо сейчас, (фиолетовые ссылки-быстрый доступ, белый ящик-это поиск, который идет за розовой областью "custommenu". Я хотел бы иметь белую коробку на розовой области. И все это находится внутри 'header')

z-index issue o/p

4 ответов


@all

извините за ответ очень поздно. Но я нашел решение после небольшой возни. Я установил Z-индекс моего заголовка в более высокое значение, чем мой custommenu. Поскольку мой заголовок содержит поле поиска, оно должно иметь более высокое значение для окна поиска в меню.

код теперь выглядит так

.header{ position: relative; z-index: 4000; }
 .header search { position: relative; z-index: 99999; }
.custommenu { position: relative; z-index: 1000 ;}

это совершенно выровняло мое окно поиска в верхней части моего меню. Еще раз спасибо всем, кто помог. Ценить это.


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


z-index требует нестатического позиционирования, однако из ваших примеров кода не ясно, какой тип позиционирования фактически используется элементами, которые вы пытаетесь сложить с z-index.

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

http://tjkdesign.com/articles/z-index/teach_yourself_how_elements_stack.asp


попробовать float? или display:block;
Если бы я использовал этот код, я бы написал css так:

position:relative;
left:some value;
top:some value;
Z-index: -999