IE 过滤器 - 阴影作用于文本;渐变+阴影作用在盒子上?
当我将以下内容附加到 div 时,我在 IE 中得到一个带有渐变和框阴影的框:
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#D08080', EndColorStr='#E7A292') progid:DXImageTransform.Microsoft.Shadow(Strength=1, Direction=170, Color='#B8B8B8');
但是,当我仅使用阴影过滤器时,我会在 div 内的文本上产生阴影。除了使用恒定颜色设置过滤渐变的明显(且丑陋)黑客之外,我怎样才能在所有版本的 IE 中获得一个简单的 div 来阴影自身而不是其文本?
When I attach the following to a div, I get a box with a gradient and a box-shadow in IE:
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#D08080', EndColorStr='#E7A292') progid:DXImageTransform.Microsoft.Shadow(Strength=1, Direction=170, Color='#B8B8B8');
However, when I'm doing JUST the shadow filter, I'm getting shadowing on the text inside the div. Other than the obvious (and ugly) hack of setting a filtered gradient with a constant color, how can I get a simple div to shadow itself rather than its text in all versions of IE?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
IE 的过滤器始终是一个丑陋的黑客,很难正确使用,并且经常会导致奇怪的错误。我的建议是尽可能避免使用它们。
查看 CSS3Pie 来解决这个问题。
CSS3Pie 是针对 IE 的 hack,允许 IE 使用标准 CSS 属性而不是
filter
来处理渐变和框阴影。它还具有border-radius
。我希望它能解决您的问题。
IE's filters are always an ugly hack, can be hard to get right, and very often cause weird bugs. My recommendation is to avoid using them wherever possible.
Take a look at CSS3Pie for a neat way around the issue.
CSS3Pie is a hack for IE that allows it to use standard CSS properties instead of
filter
for gradients and box shadows. It also doesborder-radius
.I hope it'll solve your problems.
在没有 CSSPie 的 IE 中,有一种方法可以实现这一点。 IE 7 和 IE 中的问题8 的问题是应用阴影的元素需要设置背景颜色。否则,阴影将由子元素(包括文本)继承。
这就是我实现跨浏览器框阴影的方法。这应该适用于 IE 7-10、所有 Chrome 和 IE 7-10。我曾经尝试过FF版本和Safari。忽略我的颜色选择,显然您需要将它们设置为适合您页面的颜色。
然后将两个类应用到父元素
There is a way to this in IE without CSSPie. The issue in IE 7 & 8 is that the element to which the shadow is applied, needs to have a background color set. Otherwise the shadow is inherited by child elements (including text).
This is how I achieve a cross browser box-shadow. This should work for IE 7-10, All Chrome & FF release that I have ever tried and Safari too. Ignore my color choices, obviously you'll need to set them to whatever works for your page.
Then just apply both classes to the parent element