我希望减少外部依赖 - 特别是尽可能用 CSS 效果替换图像,例如在这种情况下:
HTML 和 CSS(如这个小提琴所示)如下。
HTML
<div id="one">
<div></div>
</div>
CSS
#one{
width: 940px;
height: 350px;
padding: 0 10px;
margin: 10px 0;
position: relative;
}
#one{
background-image: url("http://webhost.ischool.uw.edu/~joatwood/portfolio/images/slider-shadow.png");
}
#one > div{
background-color: purple;
width: 100%;
height: 100%;
}
我想要实现的是获得这三件事:
- 仅在左右边缘上从元素上脱落的倾斜阴影(否则无法隐藏溢出,该元素内的其他伪元素必须超出其边缘)
- 阴影应该从黑色渐变为白色,因为它垂直远离中间
- 阴影不应该使用直边 - 它应该稍微模糊,就像你应用阴影一样
box-shadow: 5px 5px 5px
到目前为止,我已经尝试了两种方法,但都没有完全成功:
- 我使用
transform: skewX
了两个具有渐变背景的容器大小的伪元素——它在#1 和#2 上完全成功,但我想不出用它实现#3 的方法。 - 我使用
transform: rotate
了上述伪元素并尝试应用一些框阴影来模拟模糊 - 这种尝试仅在 #3 上成功,就 #1 和 #2 而言根本不起作用。
我可以使用 CSS3,只要它适用于当前的主流浏览器(Firefox、Chrome),但我不能将任何伪元素应用于内部<div>
,因为它们被用于页面上的另一个设计元素。