下面是一个 codepen 示例,说明我是如何为我最近从事的一个项目解决这个问题的:
http://codepen.io/byronj/pen/waOxqM
我在我的主要内容部分添加了一个盒子阴影。然后我在内容部分的底部添加了一个绝对定位的 div,其中包含一个CSS 渐变,一端为内容背景颜色,另一端为透明背景,如下所示:
.container {
width: 1024px;
margin: 0 auto;
}
.container article {
background-color: #fff;
margin: -6em auto 10em auto;
padding-top: 2em;
width: 100%;
box-shadow: 0px -2px 20px 2px rgba(0, 0, 0, 0.4);
}
/** GRADIENT **/
.bottom-gradient {
position: absolute;
width: 115%;
height: 60%;
z-index: 1;
bottom: -20px;
background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.59) 10%, white 50%, white 100%);
}
为了确保内容不被渐变覆盖,我将“p”元素设置为position:relative,z-index为 2,如下所示:
p {
padding: 1em 3em;
position: relative;
z-index: 2;
margin: 1em auto;
font-size: 1.3em;
line-height: 1.5em;
}
对于 Eric 的情况,您可以通过将渐变放置在包含 box-shadow 的元素的顶部来反转这种效果。
希望这可以帮助。