您现在的位置是:首页 >> 网站建设教程网站建设教程

CSS 透明度设置方法及常见问题解析

董哥2023-08-0540次围观

你对 CSS 中的半透明颜色可能已经有了基础的了解,CSS透明算得上是一种相当流行的技术,但在跨浏览器支持上,对于开发者来说,可以说是一件令人头疼的事情。目前还没有一个通用方法,以确保透明度设置可以在目前使用的所有浏览器上有效,但是总得来说它是一个巨大的变革。关于CSS 透明度,有一点需要注意的是,它虽然使用了很多年,但它一直以来都不是一个标准属性,它是一种非标准技术,应该是CSS3规范的一部分。

 

 

 

css透明度

怎样在CSS样式中设置背景的透明度

怎样在CSS样式中设置背景的透明度,下面给出一个具体的实例。把类为box的层设为透明。
 
<div class="box">div>
<style>
.box{width:300px; height:200px; margin:0 auto; boxder:1px solid #ccc; background:#000; filter:alpha(opacity:30); opacity:0.3;  -moz-opacity:0.3;-khtml-opacity: 0.3}
style>
其中background:#000; filter:alpha(opacity:30); opacity:0.3;为关键代码,当opacity值为1时,表示完全不透明,为0时表示完全透明。

其他的属性介绍如下:
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实现透明度有很多方案,这里只是介绍大家通用的方法:

 

1.  .transparent_class {

2.        filter:alpha(opacity=50);//标准的css透明度,在大部分的标准浏览器Firefox, Safari, and Opera都有效

3.        opacity:0.5;//兼容IE解决方案

4.        -moz-opacity:0.5;//老的Mozilla browsers如NetscapeNavigator.几乎没有可以不需要

5.        -khtml-opacity:0.5;//兼容老的Safari (1.x) 版本,很少可以不用  

6.  }
 

 

知道了CSS改变透明度的原理,那么使用javascript动态改变透明度就简单了:
1.  <html>

2.      <head>

3.          <title>title>

4.          <metahttp-equiv="Content-Type"content="text/html;charset=UTF-8">

5.          <style>

6.              div{width:100px;height:100px;background-color:red}

7.          style>

8.          <script>

9.              window.onload =function(){

10.                var myDiv = document.getElementById("transparent_div");

11.                myDiv.onclick =function(){

12.                    myDiv.style.opacity =".4";//针对所有通用浏览器

13.                    myDiv.style.filter ="alpha(opacity=40)";//针对IE浏览器

14.                }

15.            }

16.        script>

17.    head>

18.    <body>

19.        <divid="transparent_div">this istransparent divdiv>

20.    body>

21.html>
 
Query改变透明度实现如下:
1.  $("#transparent_div").css({ opacity:.4});
使用jQuery还可以轻松实现动画效果:
1.  $("#transparent_div").click(function(){

2.       $("#transparent_div").animate({ 

3.           opacity:.4 

4.           },1000,function(){

5.               alert("动画完成");

6.       }); 

7.   });

CSS透明技巧汇总

一、旧的Opacity设置

 

以下代码是Firefox和Safari旧版本所需的透明度设置:
#myElement {      -khtml-opacity: .5;      -moz-opacity: 0.5;  }
-khtml-opacity设置是针对旧版本的Webkit渲染引擎,这种专用属性现在已经过时了,除非你还有需要兼容Safari 1.x.的用户。
第二行使用专用属性 -moz-opacity是 为了兼容Mozilla渲染引擎的早期版本,以及追溯到Netscape Navigator。 Firefox 0.9以后就不要求使用-moz-opacity属性,Firefox 3.5(现在使用Gecko引擎)已经不在支持这个属性。
 
透明样例
 
二、在Firefox, Safari, Chrome和Opera下的CSS透明度 
 
以下代码是除了IE外的所有当前浏览器的最简单,最新的不透明度设置的CSS语法:
#myElement { opacity: .7; }
上述语法将设置一个元素为70%不透明(或30%透明)。设置opacity:1将使元素不透明,而设置opacity:0将使得元素完全不可见。你 只要记住“opacity”等同于“不透明”就很容易记住了,opacity值越小就越接近透明。

opacity属性可以精确地小数点后两位,所以值取“.01”和“.02”实际上是不同的,虽然可见度很难被发觉。一般情况下,精确到一位就可以了,取值如“.3”或“.7”。
 
 
三、IE下的CSS透明度
 
IE下照旧有别于其他浏览器,并且目前也有三个不同版本的IE在广泛使用,透明度设置是不同的,有时需要额外的CSS来控制:
#myElement {      filter: alpha(opacity=40);  }
上面的CSS使用专用的filter属性来设置IE6-8透明度。对于IE6和IE7需要注意:为了使得透明设置生效,元素必须是“有布局”。一个元素 可以通过使用一些CSS属性来使其被布局,有如width和position。

另外一个设置IE8的CSS透明度的方法语法如下:
#myElement {      filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);
/* 第一行在IE6, IE7和IE8下有效 */

-ms-filter:       “progid:DXImageTransform.Microsoft.Alpha(opacity=40)”;
/*第二行仅在IE8下有效 *

标签云

站点信息