CSS 透明度设置方法及常见问题解析
看完 w3cschool《css 教程》中的《css 图像透明/不透明》,你对 CSS 中的半透明颜色可能已经有了基础的了解,CSS 透明算得上是一种相当流行的技术,但在跨浏览器支持上,对于开发者来说,可以说是一件令人头疼的事情。目前还没有一个通用方法,以确保透明度设置可以在目前使用的所有浏览器上有效,但是总得来说它是一个巨大的变革。关于 CSS 透明度,有一点需要注意的是,它虽然使用了很多年,但它一直以来都不是一个标准属性,它是一种非标准技术,应该是 CSS3 规范的一部分。
怎样在CSS样式中设置背景的透明度
实例
.box{
width:300px;
height:200px;
margin:0 auto;
boxder:1px solid #ccc;
background:#000;
filter:alpha(opacity:30);
opacity:0.3;
color:red;}
尝试一下 »
其他的属性介绍如下:
opacity: 0.3;这是“最重要的”,因为它是在 CSS 的现行标准。这将在 Firefox,Safari 和 Opera 的大多数版本的工作。这将是你所需要的一切如果所有的浏览器都支持目前的标准。当然是他们不会错。
filter:alpha(opacity=30);这一个是针对IE浏览器
-moz-opacity:0.3;你需要这一个支持老版本的 Mozilla 浏览器如 Netscape Navigator。
-khtml-opacity: 0.3;这是旧版本的 Safari(1.×)当渲染引擎是使用仍被称为 kthml,而不是目前的WebKit。
CSS 中用 javascript 或 jquery 实现透明度的改变
如何用 CSS 实现背景半透明效果?我们一般的做法是用两个层,一个用于放文字,另一个用于做透明背景,因为透明滤镜的效果会影响到里面的内容。
不过如果你只需求在 IE 下实现,使用 CSS 实现透明度有很多方案,这里只是介绍大家通用的方法:
.transparent_class {
filter:alpha(opacity=50);//标准的css透明度,在大部分的标准浏览器Firefox, Safari, and Opera都有效
opacity:0.5;//兼容IE解决方案
-moz-opacity:0.5;//老的Mozilla browsers如NetscapeNavigator.几乎没有可以不需要
-khtml-opacity:0.5;//兼容老的Safari (1.x) 版本,很少可以不用 }
实例
<script>
window.onload =function(){
var myDiv = document.getElementById("transparent_div");
myDiv.onclick =function(){
myDiv.style.opacity =".4";//针对所有通用浏览器
myDiv.style.filter ="alpha(opacity=40)";//针对IE浏览器}}
</script>
尝试一下 »
实例
$(document).ready(function(){
$("#btn1").click(function(){
$("#box").animate({opacity:"0"});});
$("#btn2").click(function(){
$("#box").animate({opacity:"1"});});});
尝试一下 »
CSS透明技巧汇总
一、旧的Opacity设置
#myElement { -khtml-opacity: .5; -moz-opacity: 0.5; }
-khtml-opacity 设置是针对旧版本的Webkit渲染引擎,这种专用属性现在已经过时了,除非你还有需要兼容Safari 1.x.的用户。
#myElement { opacity: 0.7; }
三、IE下的CSS透明度
#myElement { filter: alpha(opacity=40); }
另外一个设置IE8的CSS透明度的方法语法如下:
#myElement { filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);
/* 第一行在IE6, IE7和IE8下有效 */
-ms-filter: “progid:DXImageTransform.Microsoft.Alpha(opacity=40)”;
/*第二行仅在IE8下有效 */}
注意两行代码的不同之处:在第二行代码中,在filter属性前跟着-ms-前缀,并且属性值有加引号,这些都是语法所必须的。
CSS 如何值改变背景透明的,不改变子元素透明度?
方法1:使用一张透明的图片做背景可以达成效果,但是有没有更简单的方法呢?
方法2:使用 RGBA。
CSS在设置了透明度的层里,怎么让里面的层不透明
但在此层里面的层都透明了,怎么让里面的层不透明?
如果是图片,就用 ps 简单处理一下即可。
opacity 这个属性指定的透明是包括里面的元素的,不可能只有外面透明,里面不透明
css里边写透明样式怎么写
style="filter:Alpha(Opacity=opacity, FinishOpacity=finishopacity,Style=style, StartX=startX,StartY=startY,FinishX=finishX,FinishY=finishY)"
Opacity:起始值,取值为0~100, 0为透明,100为原图。
FinishOpacity:目标值。
Style:1或2或3
StartX:任意值
StartY:任意值
语法如下:
filter:Alpha(Opacity="0",FinishOpacity="75",Style="2")