HTML и CSS опираются на строгий набор определенной логики и, к сожалению, не имеют возможности упорядочить через z-index
содержимое элемента и его фон независимо друг от друга и переплетать их с различными элементами (насколько я понимаю).я в курсе).
Вот один из предложенных методов, он не самый идеальный из решений, но иногда нарушение правил влечет за собой загрязнение.Примените тень к каждому из ваших li
элементов и сдвиньте тень в зависимости от того, какой элемент находится в списке: верх, низ или любой элемент между ними.
HTML
<ul>
<li><div>Elephant</div></li>
<li><div>Monkey</div></li>
<li><div>Snake</div></li>
<li><div>Zebra</div></li>
</ul>
CSS
li
{
overflow:hidden; height:30px;
}
li div /* middle items (default) */
{
box-shadow : inset 0px 0px 10px #000000;
-ms-box-shadow : inset 0px 0px 10px #000000;
-moz-box-shadow : inset 0px 0px 10px #000000;
-webkit-box-shadow : inset 0px 0px 10px #000000;
line-height:30px; height:30px; margin-top:-30px; padding:30px 10px;
}
li:first-child div /* top item */
{
margin-top:0; padding-top:0; padding-bottom:60px;
}
li:last-child div /* bottom item */
{
margin-top:-60px; padding-top:60px; padding-bottom:0;
}
Полный код и демонстрацию вы можете увидеть на следующем jsFiddle , и, похоже, он отлично работает в Firefox 11 и IE9, но не может поручиться за другие браузеры.