IE9、IE10 双浸 CSS 不透明度/滤镜
我有以下 CSS 样式用于块元素的半透明背景:
/* FF, Chrome, Opera, IE9, IE10 */
background: rgb(255,255,255) transparent;
background: rgba(255,255,255, 0.7);
/* IE7, IE8 */
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#B2FFFFFF, endColorstr=#B2FFFFFF);
在大多数情况下,这是有效的。然而,IE9 和 IE10 双浸(滤镜和背景样式),因此我们应用了两次叠加层,并且看起来非常不透明。
我怎样才能防止这种情况发生?
干杯!。
I have the following CSS styles for a semi-opaque background to a block element:
/* FF, Chrome, Opera, IE9, IE10 */
background: rgb(255,255,255) transparent;
background: rgba(255,255,255, 0.7);
/* IE7, IE8 */
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#B2FFFFFF, endColorstr=#B2FFFFFF);
For the most part this works. However, IE9 and IE10 double dip (both the filter and the background style), so that we get an overlay applied twice and it looks pretty opaque.
How can I prevent this occurring?
Cheers!.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以将过滤器放在单独的样式表中并为其使用条件语句
我个人认为这些非常hacky但有时您只需要它们
You can place the filter in a seperate stylesheet and used conditional statements for it
I personally find these pretty hacky but sometimes you just need them
这个解决方案怎么样?
How about this solution?
在所有样式表的末尾尝试一下这个:
它对我有用。这样您就不需要单独的样式表。
现在,如果有人能找到一种专门为 IE9“隔离”CSS 的好方法(没有 HTML 条件注释)……
Try this at the end of all your style sheets:
It works for me. This way you don’t need a separate stylesheet.
Now if someone could just figure out a nice way to “quarantine” CSS for IE9 specifically (without HTML conditional comments)…
“这取自 boilerplate" 那么你可以在 html 标签上使用类,这样你的类特定的 IE8 样式将是 fx像这样:
我认为最好的工作流程
"This is taken from boilerplated" then you can use classes on your html tag instead so your class specific IE8 style would be fx like this:
Best workflow in my oppion