【发布时间】:2011-01-20 08:55:43
【问题描述】:
嘿,我正在开发一个网站,我想在其中显示一个具有半透明背景的 div,以便页面背景可见。 我希望这适用于所有浏览器。 可以使用 CSS 、 JS 或 jquery ... 请给我建议,如果可能的话,请给我一些示例代码..
提前致谢, 拉杰
【问题讨论】:
标签: javascript jquery css html transparency
嘿,我正在开发一个网站,我想在其中显示一个具有半透明背景的 div,以便页面背景可见。 我希望这适用于所有浏览器。 可以使用 CSS 、 JS 或 jquery ... 请给我建议,如果可能的话,请给我一些示例代码..
提前致谢, 拉杰
【问题讨论】:
标签: javascript jquery css html transparency
您最好的选择可能是使用纯 CSS。该技术适用于 Safari 3.2+、IE 5.5+、Firefox 3.05+、Chrome 4+ 和 Opera 10+
div {
/* black for browsers which cannot support rgba */
background-color: #000;
/* 70% opacity for supported browsers */
background-color: rgba(0, 0, 0, 0.7);
/* IE 5.5+ support #BB000000 is ~70% opacity on black */
filter:progid:DXImageTransform.Microsoft.gradient(
startColorstr=#BB000000, endColorstr=#BB000000
);
/* IE 8 support */
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(
startColorstr=#BB000000, endColorstr=#BB000000
)";
}
【讨论】:
对于兼容 CSS 的浏览器:Element.style.opacity = 0-1 的十进制
对于 IE [又名魔鬼]: element.style.filter = "alpha(opacity="+(Number from 0-100)+")"
示例:http://www.w3schools.com/Css/css_image_transparency.asp
请注意,div 中的文本/内容也将变为半透明。
将 div 的不透明度设置为 50% 的示例:
var myElement = document.body.getElementById("elemId");
myElement.style.opacity = 0.5;
myElement.style.filter = "alpha(opacity=50)"; //For the devil, IE
顺便说一句,1 [或在 IE 的情况下为 100] 是完全可见的,而 0 是完全透明的。
希望对您有所帮助! ;-)
【讨论】:
如果您使用opacity,整个 div(包括文本)将处于该不透明度级别。
如果您的访问者使用的是 Webkit(Chrome、Safari)或 Gecko (Firefox) 浏览器(也可能是 Presto (Opera),但我不确定),那么您可以使用:
#divToMakePartiallyOpaque {background-color: rgba(150,150,150,0.5); }
其中红色、绿色和蓝色通道设置为150,alpha 设置为0.5(介于完全透明和完全不透明之间)。
也可以使用部分透明的背景图像,如其他地方所述。
【讨论】:
您也可以使用半透明的 PNG。据我所知,IE 6 不支持半透明,但我相信 IE7+ 和其他主流浏览器都支持。
【讨论】:
如果您对 jQuery 解决方案感到满意,以下内容适用于 jQuery 支持的所有浏览器(Firefox 2.0+、Internet Explorer 6+、Safari 3+、Opera 9+、Chrome 1+):
$('div').css('opacity', 0.5);
【讨论】:
埃尔莫说或:
opacity= .5;
filter:Alpha(opacity=50);
background-color: rgba(0, 0, 0, 0.7);
【讨论】: