Есть несколько проблем, которые вы можете решить, чтобы исправить это. Первое, что ваш HTML неоднозначен/плохо сформированы:
<div class="out"><div class="left">
</div>
<div class="right"></div>
Мое предположение, что то, что вы на самом деле имею в виду:
<div class="out">
<div class="left"></div>
<div class="right"></div>
</div>
(Вы пропускали закрытие </div>
)
С этим исправлено, самое простое решение - на самом деле вытащить тень из основного тега (.out
div
) и вместо этого создать тень как наложения.
Пример:
<div class="out">
<div class="left"></div>
<div class="right"></div>
<div class="shadow"></div>
</div>
С это сделать, вы можете легко поместить .left
и .right
<div>
элементов, где вы хотите их, а затем заставить .shadow
div
появляться на верхних.
Рассмотрим следующий CSS (я также нормировать ваш CSS некоторые уменьшить повторение):
.out, .shadow {
height: 600px; width: 600px;
}
.out {
background-color: AliceBlue;
position: relative;
}
.shadow {
background: transparent;
-webkit-box-shadow: inset 0px 0px 5px 5px ;
box-shadow: inset 0px 0px 5px 5px;
position: absolute; top: 0; left: 0;
}
.left, .right {
height: 100px; width: 100px;
bottom: 0;
position: absolute;
}
.left {
background-color: green;
left: 0;
}
.right {
background-color: red;
right: 0;
}
Поскольку .shadow
div
появляется последнее, вам не нужно каких-либо специальных z-order
для того, чтобы получить его появляются сверху.
Here is a working cssdesk, чтобы продемонстрировать его в действии.
Edit:
Как уже упоминалось в комментариях - оригинальный вопрос на самом деле просит только один из двух коробок появляются подbox-shadow
. Если вы хотите, чтобы одна из них появляются над его, просто переместить HTML тег той коробки так, чтобы она появляется после в .shadow
<div>
, как это:
<div class="out">
<div class="left"></div>
<div class="shadow"></div>
<div class="right"></div>
</div>
Это приведет к .right
коробке (красной один) появится выше тень, а не внизу - без необходимости z-index
гадость.
Я обновил пример cssdesk, чтобы отобразить эту версию вместо этого.
может предоставить любой код из того, что вы пробовали до сих пор? – PlantTheIdea
Да, ссылка на самом верху моего сообщения - это то, что я делаю –
Это вызвано цветом фона дочерних divs. Если вы установите их вместо 'RGBA' с более низкой альфа-версией, это пройдет. также .. попробуйте посмотреть на этот вопрос: http://stackoverflow.com/questions/7870499/how-do-i-make-sure-child-elements-do-not-cover-up-inset-shadow – Dimser