在 html/css 中实现白色不透明效果

Posted

技术标签:

【中文标题】在 html/css 中实现白色不透明效果【英文标题】:Achieving white opacity effect in html/css 【发布时间】:2011-04-27 12:44:06 【问题描述】:

有没有办法以跨浏览器兼容的方式实现这种效果,而无需准备分离的图像?

基本上,文本所在的框架有一个 50% 不透明度的白色叠加层。我想要一个不涉及创建除背景之外的任何其他图像的解决方案,但我不知道这是否可能!

【问题讨论】:

CSS: Styling visited images cross browser way / cross browser opacity 的可能重复项 查看骗局。不过,您必须将黑色文本放入单独的 DIV 中 但请注意,IE6 的过滤器确实是资源吸盘(IE6 工作站可能没有太多可用的资源)。 使用 opacity 我可以改变背景白色 DIV 的 alpha 但我怎样才能让文本保持黑色?我将它放在具有背景的 DIV 中,但如果我通过 CSS 覆盖它,它也会继承不透明度 CSS3 不透明度规则将级联以包含您的文本;但是 Bobby Jack 的答案中的 RGBA 背景颜色不会,给你一个 50% bgnd 不透明度和完全不透明度的文本。 【参考方案1】:

如果由于浏览器支持而无法使用rgba,并且不想包含半透明的白色PNG,则必须创建两个定位元素。一个用于白色框,不透明,另一个用于覆盖文本,实心。

body  background: red; 

.box  position: relative; z-index: 1; 
.box .back 
    position: absolute; z-index: 1;
    top: 0; left: 0; width: 100%; height: 100%;
    background: white; opacity: 0.75;

.box .text  position: relative; z-index: 2; 

body.browser-ie8 .box .back  filter: alpha(opacity=75); 
<!--[if lt IE 9]><body class="browser-ie8"><![endif]-->
<!--[if gte IE 9]><!--><body><!--<![endif]-->
    <div class="box">
        <div class="back"></div>
        <div class="text">
            Lorem ipsum dolor sit amet blah blah boogley woogley oo.
        </div>
    </div>
</body>

【讨论】:

【参考方案2】:

试试 RGBA,例如

div  background-color: rgba(255, 255, 255, 0.5); 

与往常一样,这并不适用于曾经编写的每一个浏览器。

【讨论】:

可以工作,但它与 IE 不兼容,所以我不得不使用 1 像素的背景图像和 50% 的 alpha。无论如何谢谢:)

以上是关于在 html/css 中实现白色不透明效果的主要内容,如果未能解决你的问题,请参考以下文章

UnityShader透明效果

AE 里 如何给中间白色矩形添加一个从白色到透明的渐变效果

flutter 中实现磨砂玻璃效果

QT下的几种透明效果(QPalette背景白色,窗口设置setWindowOpacity,QPainter使用Clear模式绘图)

iOS 7中UITableView的半透明效果[关闭]

用PS怎么做透明亚克力板效果?