一个关于透明度继承的问题

愚人码头 撰写  

取这个标题我很胆怯,因为我始终不敢确定这个到底是不是透明度的继承!但是我没相到更好的标题,那也只能用这个比较形象的标题了。

 

在前端开发的时候,经常用到板块背景的透明度,

例如这样的结构:

XML/HTML代码
  1. <div class=“div1″>这里文字图片都带透明度了   
  2.   <div class=“div2″>图片</div>  
  3. </div>  

样式

CSS代码
  1. body {   
  2.     background-imageurl(http://www.css88.com/demo/jQuery/blockSlide/2009-02-04_105247.png);   
  3.     background-repeatrepeat;   
  4. }   
  5. .div1{ width:200pxheight:200pxbackground:#FFFFFF;filter:alpha(opacity=70);opacity:0.7;}   
  6. .div2{ width:100pxheight:100pxbackgroundurl(http://www.css88.com/images/testbok.png)}  

这样里面的容器div2就“继承了”外面容器div1的透明度,也变成了70%的透明。ie6-ie8,ff,及其他都是一样。

查看demo中的示例1:http://www.css88.com/demo/opacity/opacity.html

这根本不是设计师的本意。设计师只要使背景透明,里面的内容不透明。

那么我是这么解决的:

 

XML/HTML代码
  1. <div class=“div3″><div class=“div4″></div>这里文字图片都没透明度了   
  2.   <div class=“div2″>图片</div>  
  3. </div>  

 

CSS代码
  1. body {   
  2.     background-imageurl(http://www.css88.com/demo/jQuery/blockSlide/2009-02-04_105247.png);   
  3.     background-repeatrepeat;   
  4. }   
  5. .div2{ width:100pxheight:100pxbackgroundurl(http://www.css88.com/images/testbok.png)}   
  6. .div3{ width:200pxheight:200pxposition:relativemargin-top:10px}   
  7. .div4{  position:absolutetop:0; height:200pxwidth:200pxz-index:-1; background:#FFFFFF;filter:alpha(opacity=70);opacity:0.7;}  

查看demo中的示例2:http://www.css88.com/demo/opacity/opacity.html

如果你外面的容器高度是不定的,那么只要把div3的高度设置的足够的高度就可以了

这个方法有个很不好的缺点:多了一个空白的div

注:在ie8的bate版下可以这样来解决问题:

XML/HTML代码
  1. <div class=“div1″>这里文字图片都带透明度了   
  2.   <div class=“div2″>图片</div>  
  3. </div>  
CSS代码
  1. body {   
  2.     background-imageurl(http://www.css88.com/demo/jQuery/blockSlide/2009-02-04_105247.png);   
  3.     background-repeatrepeat;   
  4. }   
  5. .div1{ width:200pxheight:200pxbackground:#FFFFFF;filter:alpha(opacity=70);opacity:0.7;}   
  6. .div2{ width:100pxheight:100pxposition:relative; backgroundurl(http://www.css88.com/images/testbok.png)}  

就是在div2里加了position:relative;但是在其他浏览器下面是无效的。

大家如果有更好的办法欢迎留言斧正!

更多相关链接:


或许你对这些感兴趣:

刚刚被浏览过的文章:


16 个引用通告

  1. [...] 一个关于透明度继承的问题 [...]

  2. [...] 一个关于透明度继承的问题 [...]

  3. » 60+CSS技巧教程资源大全 | 零食屋 发表在 2009年07月2日 于 9:12 上午

    [...] 一个关于透明度继承的问题 [...]

  4. 克兰印象 » 60+CSS技巧教程资源大全 发表在 2009年07月26日 于 11:06 上午

    [...] 一个关于透明度继承的问题 [...]

  5. 60+CSS技巧教程资源大全 | 帕兰映像 发表在 2009年08月18日 于 6:55 上午

    [...] 一个关于透明度继承的问题 [...]

  6. 60+xHTML+CSS技巧教程资源大全 - Jeff-Chen.Com 发表在 2009年08月27日 于 1:54 下午

    [...] 一个关于透明度继承的问题 [...]

  7. CSS透明属性详解 | 帕兰映像 发表在 2009年08月29日 于 6:43 下午

    [...] 搜了一下,找到一个不错的实现这种效果的方法 – 一个关于透明继承度的问题,有兴趣的朋友可以看看。原理很简单,添加一个空元素作为透明层,和不想透明但是要实现覆盖效果的元素为同级元素。父级元素使用position:relative定位; 两个子元素使用position:absolute定位,实现覆盖。 [...]

  8. 行骏-IT Player » Blog Archive » CSS技巧教程资源大全 发表在 2009年12月26日 于 12:03 上午

    [...] 一个关于透明度继承的问题 [...]

  9. 学无止境的CSS(xHTML+CSS技巧教程资源大全) « theU0net.Blog 发表在 2010年01月21日 于 1:48 上午

    [...] 一个关于透明度继承的问题 [...]

  10. 还是再推荐一下这个CSS技巧教程资源大全 | SiteComment 发表在 2010年02月25日 于 9:12 下午

    [...] 一个关于透明度继承的问题 [...]

  11. CSS技巧教程资源大全 发表在 2010年03月18日 于 10:53 上午

    [...] 一个关于透明度继承的问题 [...]

  12. css3透明度与rgba颜色 « 张林 发表在 2010年03月20日 于 11:12 上午

    [...] goo了一gle,找到这篇文章, [...]

  13. 天空之城 » Blog Archive » CSS透明属性详解 发表在 2010年03月24日 于 2:41 下午

    [...] 搜了一下,找到一个不错的实现这种效果的方法 – 一个关于透明继承度的问题,有兴趣的朋友可以看看。原理很简单,添加一个空元素作为透明层,和不想透明但是要实现覆盖效果的元素为同级元素。父级元素使用position:relative定位; 两个子元素使用position:absolute定位,实现覆盖。 Tags: alpha, css, filter, opacity micky | 三 24th, 2010 | Web. Trackback from your site. [...]

  14. [...] 一个关于透明度继承的问题 [...]

  15. 60+CSS技巧教程资源大全 发表在 2010年05月12日 于 10:04 下午

    [...] 一个关于透明度继承的问题 [...]

  16. css的透明属性归纳 | 楠内--探寻前端的秘密 发表在 2010年05月26日 于 1:14 下午

    [...] 解决方案: 一个关于透明继承度的问题 [...]

发表评论

Your email is never shared. 标记为 * 的为必填项目

*
*

评论时,昵称或个人网站填的是商业网站的,一概标记为垃圾评论不予显示,并设置相关网站为过滤关键字,提交到google、百度垃圾网站数据库