如何创建模拟多个深度的框阴影

时间:2016-06-01 18:30:43

标签: html css css3 shadow box-shadow

假设我想在背景上模拟2个不同的对象层。第一层上的对象应该有一个大阴影,第二层上的对象应该有一个较小的阴影。

现在,如果前层上的对象与第二层上的对象重叠怎么办?然后它应该在背景上有一个大阴影,但在第二层对象上应该有一个较小的阴影。

以下是我正在寻找的一个例子:

A picture of 2 overlapping objects, as described above.

使用CSS可以实现这种效果吗?甚至SVG过滤器,或类似的东西可能吗?有什么想法吗?

1 个答案:

答案 0 :(得分:2)

你可以使用伪来增加阴影的一部分:



div {
  height: 150px;
  padding-top: 50px;
  margin: 3em;
  width: 300px;
  box-shadow: 2px 2px 5px;
}
p {
  margin: 2em;
  position: relative;
  box-shadow: 2px 2px 5px;
  height: 50px;
  width: 500px;
  background: white;
}
p:before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 265px;/* offset value to mind */
  box-shadow: 5px 5px 5px #333;
  pointer-events:none; /* takes it off the way, else negative z-index might do also */
}

<div>
  <p>
  </p>
</div>
&#13;
&#13;
&#13;

用于演示目的的大小,边距和填充,使用真实内容:)