使用 CSS 覆盖透明 div 中的不透明文本
我试图使透明 div 内的文本没有不透明度,也就是完全黑色:
<div style="opacity:0.6;background:#3cc;">
<p style="background:#000;opacity:1">This text should be all black</p>
</div>
这可能仅与 CSS 相关吗?
提前致谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
最简单的方法是使用 opacity/alpha 设置父 div 的背景样式:
但是,这与 IE 不兼容。
对于 IE >= 7 兼容性,您可以使用:
我记得 IE <= 7 7 有一个专有的过滤器选项,但恐怕我不记得它是如何工作的。所以我省略了任何描述/展示它的尝试。如果我能找到有用的参考,我会在稍后添加它。
正如 easwee 所指出的,不透明度是由包含的元素继承的,这就是为什么你不能覆盖它,也是为什么我更喜欢使用
background-color
/background-image
方法。The easiest way is to style the background of the parent div with opacity/alpha:
This is not, however, compatible with IE.
For IE >= 7 compatibility, you could use:
I recall that IE < 7 has a proprietary filter option, but I'm afraid I can't recall how it works. So I've omitted any attempt to describe/show it. If I can find a useful reference though I'll add it in later.
As noted by easwee the opacity is inherited by contained elements, which is why you can't override it, and is why I prefer to use the
background-color
/background-image
approach.子元素继承不透明度。您可以做的是将
放置在不透明 div 外部,并设置负边距以将其移动到其上方。
我经常遇到这个问题,通常都是这样解决的。仅当您有动态内容并且 div 必须扩展时才会出现问题。
The child elements inherit the opacity. What you could do is to position the
<p>
outside the opaque div and set a negative margin to move it over it.I came across this problem often and usually solved it like this. Problem is only when you have dynamic content and the div has to expand.
背景是否由纯色组成?如果是这样,您还可以使用 RGBa 为
div
选择不被其子级继承的透明背景颜色。阅读 RGBa 浏览器支持了解更多信息、IE 和 另一个解决方案。如果
div
的背景不是纯色,您可以使用透明 PNG 作为背景。请记住在 IE6(和 5.5)中使用 AlphaImageLoader。Does the background consist of a solid colour? If so, you could also use RGBa to select a transparent background colour for the
div
that isn't inherited by its the children. Read RGBa Browser Support for more information, a workaround for IE and another solution.If the background of the
div
isn't solid, you can use a transparent PNG as background. Remember to use AlphaImageLoader in IE6 (and 5.5).