在没有CSSPie的情况下,有一种方法可以在IE中使用。 IE 7 & 8中的问题是,应用阴影的元素需要设置背景色。否则,阴影会被子元素(包括文本)继承。
这就是我如何实现跨浏览器的阴影。这应该适用于我曾经尝试过的IE 7-10,所有Chrome & FF版本以及Safari。忽略我的颜色选择,显然你需要将它们设置为适合你页面的任何东西。
.wrapper {
border: solid 1px #A7A7A7;
background-color:#ffffff;/*transparent won't work*/
}
.shadow {
-moz-box-shadow: 2px 2px 3px #A7A7A7;
-webkit-box-shadow: 2px 2px 3px #A7A7A7;
box-shadow: 2px 2px 3px #A7A7A7;
-ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=3, Direction=135, Color='#A7A7A7')";
filter: progid:DXImageTransform.Microsoft.Shadow(Strength=3, Direction=135, Color='#A7A7A7');
}
然后,只需两个类适用于父元素
<div class="wrapper shadow">
<div id="someInnerDiv">
<p>Some text that used to inherit the box-shadow, but doesn't anymore</p>
strong text</div>
</div>
非常感谢您的回答。我曾经尝试过CSS3Pie,但是我遇到了一个问题,那就是IE会在我的CSS文件中声明的每个页面上崩溃。 – sscirrus 2011-03-10 10:35:45
@sscirrus - 真遗憾。我希望你报告它是一个馅饼论坛上的错误?另外,你使用的是什么版本的Pie;它现在已经达到了第三个beta版本,并且比以前的版本更加稳定。 – Spudley 2011-03-10 10:54:35
感谢您的建议。我会给CSS3Pie另一个尝试。在IE7和IE8上正确显示内容需要花费很多时间......在习惯了Chrome/FF的美妙之后,尤其令人沮丧! – sscirrus 2011-03-10 11:38:53