跨浏览器rgba透明背景,同时保持内容(文本和图像)不是

我想让rgba背景与所有浏览器一起工作。 我做了一些搜索,发现通常有三种类型的浏览器:

1)支持rgba的浏览器。

2)通过奇怪的“-ms-filter”事物支持rgba的Internet Explorer。

3)不支持rgba的浏览器,但我可以使用'数据URI方案'使用base64 PNG图像。 (即使浏览器不支持URI方案,根据这一点仍然可以完成。)

我对支持rgba的浏览器没有任何问题,并且我可以使用IE浏览器,但问题是我不知道如何为URI方案生成客户端的base64 png图像。 我真的不想预生成PNG文件,因为我的rgba值不是恒定的。 我可以用php gd library来动态生成png代码,但我真的很想在客户端做所有这些。 所以我想知道,有没有什么好办法用java脚本生成半透明png图像。 在此之后,我可以base64编码它们并使用它们与URI方案?

谢谢。

编辑:

我想要具有半透明的div背景,而内容完全可见。


请参阅此博客文章以获取跨浏览器方法:

.alpha60 {
    /* Fallback for web browsers that doesn't support RGBa */
    background: rgb(0, 0, 0);
    /* RGBa with 0.6 opacity */
    background: rgba(0, 0, 0, 0.6);
    /* For IE 5.5 - 7*/
    filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000);
    /* For IE 8*/
    -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000)";
}

Web浏览器支持

RGBa支持可用于:Firefox 3 + Safari 2+ Opera 10

Internet Explorer 5.5中的筛选器可用。

这意味着这将适用于几乎每个人!

在这里看到一个简单的方法来生成IE过滤器的颜色。

这样做应该可以避免使用“base64 png图像和'数据URI方案'”。


如果你真的,真的想生成客户端.png图像(我不明白这里的需要):

使用JavaScript生成客户端PNG文件。 很酷的想法,真的:

它再次成为那些我无法控制的毒品之夜。 当然,5年前,你曾经爱过我这样一个项目,但在HTML5与画布元素的时代,很难打动你。 因此,请将其作为创建客户端图像而不使用画布,SVG或服务器端渲染和AJAX处理的证明。

但是这怎么可能? 那么,我已经实现了一个像libpng这样的客户端JavaScript库,它创建了一个PNG数据流。 生成的二进制数据可以使用Base64编码附加到数据URI方案。


我认为不支持rgba的浏览器也不支持base64。 但是,你可以简单地使用一个2x2 px半透明PNG背景图像(不是1x1,以避免与IE的奇怪的错误)。


您可以一直使用透明度,返回到Webkit Safari,IE5,Firefox .9之前......所以,没有人会使用它。 http://css-tricks.com/css-transparency-settings-for-all-broswers/

.transparent {
zoom: 1;
filter: alpha(opacity=50);
opacity: 0.5;
}

当然,你可以通过你最喜欢的Javascript库或者手边来设置这些CSS属性。 因此,作为您的后备,通常设置您的RBG,然后添加适当的透明度

链接地址: http://www.djcxy.com/p/15795.html

上一篇: Cross browser rgba transparent background while keeping content (text & images) non

下一篇: block element and a block element