怎么实现背景透明而文字不被透明
前言:
我们知道使用opacity可以实现透明效果,兼容语句是:filter:alpha(opacity=0~100);但是它具有父子继承特性,怎么实现我们想要的效果呢?
方法一:运用CSS3的属性rgba(R,G,B,A),IE8以上的版本可以达到我们的要求:
R:红色值。正整数 | 百分数
G:绿色值。正整数 | 百分数
B:蓝色值。正整数 | 百分数
A:Alpha透明度。取值0~1之间。
那么IE8及以下怎么办呢?再加一句:
filter:progid:DXImageTransform.Microsoft.gradient(startcolorstr=#7F000000,endcolorstr=#7F000000);
#7F000000的前两位数字控制透明度,取值16进制从00 -> FF(越小越透明),00表示完全透明,FF就是全不透明,后面六位是色值。
方法二:用opacity,但是让文字与div之间不再是父子关系,通过定位或margin值来实现我们想要的效果,这方法可以实现当我们不是纯色背景(图片)图片透明
的需求。
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> *{margin:0;padding:0;} .box{position:relative;margin:0 auto;width:300px;} .box1{ width:300px; height:200px; background: green; opacity:.5; } p{ width:300px; text-align:center; color:red; font:bold 20px/20px "微软雅黑"; position:absolute;top:50%;} </style> </head> <body> <div class="box"> <div class="box1"></div> <p>字体不被透明</p> </div> </body> </html>
这是之前遇到的坑,希望对你有所帮助,有问题大家可以一起讨论...........