先看看众所周知的解决方案

如果我们想要一个半透明背景,有两种实现方式:

1、利用CSS和opacity属性

  1. .opacity {
  2. filter:alpha(opacity=);/*IE浏览器*/
  3. opacity: 0.5;/*非IE浏览器*/
  4. }

2、建立一个24位PNG背景图片

第一种利用opacity的问题除了 需要通过麻烦的语法来兼容所有浏览器, 还有不单该元素自身背景透明了,它的子元素会继承opacity属性,也会透明.

所以里面所有的文字也是透明的,这一般不是想要的效果. 你可以做一些CSS trick,通过建立额外的元素来解决这个问题,但这种解决方案很恶心.

第二种,用PNG的问题是会额外增加HTTP请求, 而且图片比几行css代码要大得多- 尤其考虑到图片不能太小以避免 IE下24位PNG图透明时引起的内存泄漏和IE6下灰色背景的问题也是很常见的.

那么有没有更好的方案来实现呢,答案是必须的,就是用RGBa colors 就可以实现轻松的背景透明

  1. .opacity{
  2. /* RGBa, 透明度0.6 */
  3. background: rgba(, , , 0.6);
  4. }

透明将只对背景生效,很好很强大,但是IE是不支持RGBa的

幸运的是IE浏览器有一个渐变过滤器(the gradient filter), 我们只需要把开始结束都设置成一个颜色就可以了. 你现在会想,”那我们怎么将其透明呢?”. 你只需要用16进制值来定义颜色就可以了. 下面是用渐变过滤器实现和上面同等透明效果的代码:

  1. .opacity {
  2. filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#, endColorstr=#);
  3. }

你可以看到定义里的8位16进制数字, 前两位代表透明度,接下来两位是红色,接着就是绿色和蓝色. 注意两位16进制颜色的范围是0~255(ff). 那我们怎么将0.6转化为16进制数呢?

最快最好的方法就是Javascript来获取

  1. <script type="text/javascript">
  2. alert(Math.floor(0.3 * ).toString());//输出"4c"
  3. alert(Math.floor(0.6 * ).toString());//输出"99"
  4. </script>

最后的整合代码:

  1. /* 黑色色背景,透明度0.3 */
  2. .opacity30 {
  3. background: transparent\;
  4. zoom: ;
  5. background:rgba(,,,.);
  6. *filter:progid:DXImageTransform.Microsoft.Gradient(startColorStr=#4c000000,endColorStr=#4c000000);*background:url(about:blank);
  7. }

/* 黑色色背景,透明度0.6 */

  1. .opacity30{
  2. background: transparent\;
  3. background:rgba(,,,.);
  4. zoom: ;
  5. background:rgba(,,,.);*filter:progid:DXImageTransform.Microsoft.Gradient(startColorStr=#,endColorStr=#);
  6. }

如果你添加后链接区域变小,可尝试添加*background:url(about:blank);来解决

CSS利用filter/opacity实现背景透明的更多相关文章

  1. opacity的背景透明&background中rgba的背景色透明

    近期使用css实现了一个loading旋转加载的图片效果,类似gif动画 过程中,需要透明背景,但是图片不要透明 只要背景透明!只要背景透明!只要背景透明! 这里对透明模糊了,两种写法,模糊了 A: ...

  2. css的三个特性 背景透明设置

    关于行内元素(补充一点) 行内元素只能容纳文本或其他行内元素.(a特殊a里面可以放块级元素) 例子: 关于行高tip: 选择器的嵌套层级不应大于3级,位置靠后的限定条件应尽可能的精确. 属性定义必须另 ...

  3. 【原】CSS实现背景透明,文字不透明,兼容所有浏览器

    11.11是公司成立的日子,16岁啦,我呢3岁半,感谢公司给了这样一个平台,让我得以学习和成长,这里祝愿公司发展越来越好~ 进入主题,每年11月11号是光棍节,产生于校园,本来只是一流传于年轻人的娱乐 ...

  4. CSS实现背景透明,文字不透明,兼容所有浏览器

    11.11是公司成立的日子,16岁啦,我呢3岁半,感谢公司给了这样一个平台,让我得以学习和成长,这里祝愿公司发展越来越好~ 进入主题,每年11月11号是光棍节,产生于校园,本来只是一流传于年轻人的娱乐 ...

  5. CSS实现背景透明,文字不透明(兼容所有浏览器)

    我们平时所说的调整透明度,其实在样式中是调整不透明度,如下图所示例: 打开ps,在图层面板上,可以看到设置图层整理不透明度的菜单,从 0% (完全透明)到 100%(完全不透明). 实现透明的css方 ...

  6. CSS实现背景透明,文字不透明(兼容各浏览器)

    在 FF/Chrome 等较新的浏览器中可以使用css属性background- color的rgba轻松实现背景透明,而文字保持不透明.而IE6/7/8浏览器不支持rgba,只有使用IE的专属滤镜f ...

  7. css 背景透明文字(内容)不透明三种实现方法

    好久没写博客了.以前还想着最少一个月抽空写几篇.结果没做到O(∩_∩)O~~.好吧.现在努力,继续坚持. 看着以前写的东西,感觉自己在逐渐成长. 先上图: 本文主要记录如上图一样的.文字或内容不透明, ...

  8. CSS实现背景透明,文字不透明(各浏览器兼容)

    /*CSS*/.waps{ background:url(07158.bmp) no-repeat top center fixed; width:1004px; text-align:center; ...

  9. CSS让div背景透明

    div背景透明样式: 样式代码: .alert{filter:alpha(opacity=100); /* IE */ -moz-opacity:1.0; /* Moz + FF */ opacity ...

随机推荐

  1. bootStrap-treeview插件

    简要教程 bootstrap-treeview是一款效果非常酷的基于bootstrap的jQuery多级列表树插件.该jQuery插件基于Twitter Bootstrap,以简单和优雅的方式来显示一 ...

  2. Vue Element 使用 icon 图标 (第三方)

    Vue Element 使用 icon 图标 (第三方) element-ui 自带的图标库还是不够全, 还是需要需要引入第三方 icon, 自己在用的时候一直有些问题, 参考了些教程, 详细地记录补 ...

  3. js 类数组转化数组

    一.常见类数组集合 (1).arguements function fn(){ var arr = [].slice.call(arguements,0); } (2).HTMLCollection  ...

  4. 19-10-29-Night-X

    布谷. 欢迎大家来不耻下问. 这里是正解不会,暴力写跪,乱搞鸡肋的某虻 . 好想放假啊!!!! 话说猫厂现在产量低迷…… ZJ一下: T1,三维偏序,只码了$\Theta(N^2)$暴力 T2,暴力愉 ...

  5. python-爬免费ip并验证其可行性

    前言 最近在重新温习python基础-正则,感觉正则很强大,不过有点枯燥,想着,就去应用正则,找点有趣的事玩玩 00xx01---代理IP 有好多免费的ip,不过一个一个保存太难了,也不可能,还是用我 ...

  6. HDU--2602(0-1背包)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2602  分析:一个0-1背包问题.记得<背包九讲>的方法. dp[j]=max{dp[j],d ...

  7. redis String 命令

    今天在虚拟机的Ubuntu上装了一个redis,学习redis的一些基本东西,在数据类型的时候,看到redis的,String,hash,set list zset,对String的setbit命令一 ...

  8. angular 基本树结构

    HTML: http://www.ngnice.com/showcase/#/tree/basic <link rel="stylesheet" href="vie ...

  9. mybatis的Example的使用

    MyBatis的Mapper接口以及Example的实例函数及详解 一.mapper接口中的方法解析 mapper接口中的函数及方法 方法 功能说明 int countByExample(UserEx ...

  10. 11.Hibernate一对多关系

    创建JavaBean 一方: Customer private long cust_id; private String cust_name; private long cust_user_id; p ...