aardio窗体半透明文字不透明

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了aardio窗体半透明文字不透明相关的知识,希望对你有一定的参考价值。

参考技术A 设置。首先设置参数,其次设置一个透明色,最后设置透明度。aardio专注于桌面软件开发,提供了大量开源的标准库、扩展库,这些库基本都是由纯aardio代码实现,涉及到了桌面编程的方方面面。

CSS实现背景透明而背景上的文字不透明

在我们设计制作一些网页的时候可能会用到半透明的效果,首先我们可能会想到用PNG图片处理,当然这是一个不错的办法,唯一的兼容性问题就是ie6下的BUG,但这也不困难,加上一段js处理就行了。但假如我们需要一个半透明遮罩的弹出层,如登陆框、注册框、提示等,这时可能需要整个页面都要被半透明的遮罩层覆盖,那么如用背景平铺的话,此时此刻也许就不是一个好办法了,图片大了会影响加载速度,图片小了同样会增加页面的渲染计算量,那么这时也许就需要用CSS滤镜了。

假如有这样一个例子:“有一个DIV块,此DIV是黑色半透明的,但此DIV里面的内容要保持原状,不能透明”,那么我们该怎么做呢?

假如HTML部分我们这样写的

1
2
3
4
5
6
7
8
9
10
11
<div class="touMingDiv">
    <div>
        <h1>这是透明的层这是透明的层这是透明的层这是透明的层
            这是透明的层这是透明的层这是透明的层这是透明的层这是透明的层
        </h1>
    </div>
    <p>
        这是透明的层,但上边的文字和图片均不透明,兼容ie7,ie8,ie9,ie10,FF,Chrome
    </p>
    <img src="bg.jpg"/>
</div>

对于CSS我们也许就这样写了

1
2
3
4
.touMingDiv{
    filter:Alpha(opacity=60);
    opacity:0.6;
}

但经过测试我们发现,不仅div容器半透明了,连div里面的文字和图片都把透明了。由于这些滤镜的属性已经继承给了子元素,所以会出现这种效果。

我们可以用下面这种发法来实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
.touMingDiv{
    width:800px;
    min-height:300px;
    color:#fff;
    background:rgba(0,0,0,0.6);
    background:#000 9;/*CSS Hack,只能对ie9以下浏览器ie6,ie7,ie8有效,否侧ie10,FF,Cherome会失去透明效果*/
    filter:Alpha(opacity=60);/*只对ie7,ie8有效*/
}
.touMingDiv p,
.touMingDiv div,
.touMingDiv img{
    position:relative;
    /*或者是absolute,都可以使文字不透明,这样做还是为了
    兼容ie9,ie8,ie7下背景透明而而背景上的文字不透明的效果*/
}

注意,上面background:rgba(0,0,0,0.6);只对ie9,ie10,FF,Chrome...等有效,不包括ie6,ie7,ie8,所以有了这几句代码:

1
2
background:#000 9;/*CSS Hack,只能对ie9以下浏览器ie6,ie7,ie8有效,否侧ie10,FF,Cherome会失去透明效果*/
filter:Alpha(opacity=60);/*只对ie7,ie8有效*/

另外还要对子级元素设置relative或者absolute属性,这样才能出现背景透明而背景上面的文字和图片正常显示的效果。

但这里的代码毅然不适合ie6,建议对于ie6就用png图片吧,然后用js做一下处理,可以参考我的另一篇文章

以上是关于aardio窗体半透明文字不透明的主要内容,如果未能解决你的问题,请参考以下文章

求助,关于Qt的窗口半透明,窗口上的空间不透明

C# Windows 窗体半透明

创建一个半透明或透明的窗口 从透明到鼠标事件,除了添加到窗体的控件

转载 | 如何实现模块半透明 文字内容不透明?

QT主窗体半透明实现

在具有一些控件的 Windows 窗体上绘制半透明覆盖图像