如何让div影子来到它的孩子身上?

时间:2018-02-11 16:25:44

标签: html css css3 box-shadow

我希望我的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>
&#13;
&#13;
&#13;

4 个答案:

答案 0 :(得分:2)

只需为阴影量添加填充。

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/

答案 1 :(得分:2)

同意Vitalii Chmovzh的答案,但如果你不想填充任何空间。

所以只需将其用于img代码。

img{
  display: block;
  position:relative;
  z-index:-1;
}

不改变盒子模型的大小。

更新了fiddle

答案 2 :(得分:1)

这个问题是图像会在阴影上呈现。

试试这个,

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: "";
}

答案 3 :(得分:0)

不知何故,你的形象对我不起作用。这是解决方案:

div {
  width: 70%;
  white-space: nowrap;
  box-shadow: inset 0 0 10px #000000;
}

img{
  width: 100%;
  display: block;
  position: relative;
  z-index: -1;
}

https://jsfiddle.net/tp9pz9w0/7/