CSS3 отбрасывает тень под другим div, Z-индекс не работает
Я пытаюсь использовать тень, чтобы сделать его похожим на один div (заголовок) "выше" другого. моя проблема заключается в том, что" средний " div покрывает тень. я попытался использовать z-индекс, чтобы поместить заголовок div около среднего div, но он не работает (тень все еще покрывается). когда я ставлю перерыв между дивами, я вижу тень, и поэтому я знаю, что часть кода работает правильно. у меня есть следующий HTML-код:
<div id='portal_header_light'>
<img src="Home.png" height="32px" >
<img src="Wrench.png" height="32px" >
</div>
<div id='middle'></div>
и этого css:
#portal_header_light {
font-family:Arial, Helvetica, sans-serif;
font-size:12px; text-align:center;
-moz-border-radius: 3px 3px 3px 3px;
-webkit-border-radius: 3px 3px 3px 3px;
padding: 0px 3px 0px 3px;
background: -moz-linear-gradient(center top, #999999 0%,#ffffff 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #999999),color-stop(1, #ffffff));
-webkit-box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.3);
-moz-box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.3);
box-shadow: 0 1px 10px rgba(0, 0, 0, 0.3);
z-index:5;
}
#middle{
height:308px;
background-color:white;
z-index:-1;
}
какие идеи? спасибо.
4 ответа:
The
z-index
свойство работает только на относительные,абсолютное или основные позиционированных элементов.попробуйте дать ваш div
#middle
aposition: relative
.
попробуйте вставить тень коробки на элемент, который вы хотите, чтобы появиться под.
.element-that-is-to-be-under{ -webkit-box-shadow: inset 0 8px 4px -4px #ddd; -moz-box-shadow: inset 0 8px 4px -4px #ddd; box-shadow: inset 0 8px 4px -4px #ddd; }
Это облегчит перетасовку Z-индекса, и вы будете намного счастливее в долгосрочной перспективе.
основываясь на других ответах здесь, я обнаружил, что это работает лучше, поставив
position: relative
on#portal_header_light
, вместо#middle
. Тогда я не должен был иметьz-index: -1
, который (по крайней мере, в Chrome) испортил эффекты наведения курсора и вызвал некоторые другие странные проблемы.http://jsfiddle.net/thaddeusmt/m6bvZ/
вот упрощенный код:
<div id="portal_header_light">Header Content</div> <div id="middle">Test Content</div> #portal_header_light { position: relative; padding: 3px; background: #eee; -webkit-box-shadow: 0px 4px 10px -2px rgba(0, 0, 0, 0.3); -moz-box-shadow: 0px 4px 10px -2px rgba(0, 0, 0, 0.3); box-shadow: 0 4px 10px -2px rgba(0, 0, 0, 0.3); z-index:5; } #middle{ height:308px; background-color:#fee; padding: 3px; }