Как сделать так, чтобы тень блеснула над своими детьми?
Я хочу, чтобы внутренняя тень моего div проходила через его содержимое (обратите внимание, что я не просто хочу, чтобы изображение имело внутреннюю тень, у меня гораздо более сложный прокручиваемый div с таким количеством детей, это лишь минимальный пример.
div {
white-space: nowrap;
box-shadow: inset 0 0 10px #000000;
}
img {
display: block;
}
<div>
<img src="http://www.claireking.com/wp-content/uploads/2018/01/images.png" />
</div>
4 ответа
Согласна с ответом Виталия Чмовжа, но в случае, если вы не хотите пробела отступом.
Так что просто используйте это для вашего img
тег.
img{
display: block;
position:relative;
z-index:-1;
}
Без изменения размеров вашей модели коробки.
Обновленная скрипка
Просто добавьте отступы для количества тени.
div {
white-space: nowrap;
box-shadow: inset 0 0 10px #000000;
padding: 10px;
}
Смотрите рабочую скрипку: https://jsfiddle.net/f0qasdo6/
UPD: еще один рабочий пример без изменений div
размер:
div {
white-space: nowrap;
position: relative;
}
div:before {
content: '';
display: block;
position: absolute;
top:0;
left: 0;
right: 0;
bottom: 0;
box-shadow: inset 0 0 10px #000000;
}
Недостатком этого подхода является то, что вы не сможете нажимать на содержимое внутри div, поэтому его можно использовать для добавления эффекта к неинтерактивным блокам.
Смотрите скрипку: https://jsfiddle.net/r3t2p2cw/
Проблема в том, что изображение отображается поверх тени.
Попробуй это,
div {
white-space: nowrap;
position: relative;
}
img{
display: block;
}
div::before {
box-shadow: inset 0 0 10px #000000;
position: absolute;
width: 100%;
height: 100%;
content: "";
}
Как-то ваш образ не работает для меня. Вот решение:
div {
width: 70%;
white-space: nowrap;
box-shadow: inset 0 0 10px #000000;
}
img{
width: 100%;
display: block;
position: relative;
z-index: -1;
}