4

我正在尝试在网站的可变长度内容部分构建复杂的阴影背景。我已经尝试了所有我知道的技巧来完成这项工作,只是无法弄清楚如何让它正常工作。我希望这里的 CSS 忍者可以提供帮助。

你可以在这里看到我想要完成的一个例子:http: //mpgnet.com/example.jpg

如您所见,顶部和底部阴影很容易。左右两边的阴影是麻烦制造者。顶部和底部 150px 与中心部分不同,中心部分需要随着中心内容垂直增长而扩展。

这就是它变得非常棘手的地方:这些阴影必须有一个透明的背景,因为背景不是实心的(就像在这个示例图像中突出阴影一样),而且因为长度是可变的,所以你永远不知道端盖的位置落在背景图案上。正因为如此,我不能只用一个重复的阴影制作整个东西,然后用顶部和底部的部分覆盖它。

任何关于如何实现这一点的建议/想法/灵感都值得赞赏。CSS3 使用没问题。

4

1 回答 1

9

这使用了 CSS3,所以它在 IE8 或更早版本中不起作用,但我想我已经写了一些你可以使用的东西。你可以在这里看到一个工作演示。(只需扩展和收缩浏览器窗口即可查看它的工作)。

我看到有人提到使用border-image,但这种方式不需要图像并且具有更好的浏览器支持(尤其是IE9)。

我没有做顶部和底部阴影,因为它们不需要在您的设计中扩展和收缩。

.shadowbox {
    position: relative;
    margin: 100px auto;
    width: 80%;
}

.shadowbox:after {
    position: absolute;
    content: '';
    top: 10px;
    bottom: 10px;
    left: 0;
    width: 20px;
    box-shadow: 0px 0px 15px rgba(0,0,0,0.7);
    border-radius: 50%;
}

.shadowbox:before {
    position: absolute;
    content: '';
    top: 10px;
    bottom: 10px;
    right: 0;
    width: 15px;
    box-shadow: 0px 0px 15px rgba(0,0,0,0.7);
    border-radius: 50%;
}

.shadowbox.content {
    position: relative;
    z-index: 1;
    background: #fff;
    padding: 30px;
    z-index: 10;
}
于 2012-06-06T17:49:27.560 回答