我有一个问题,创建一个透明元素有一个子元素。
使用此代码,子元素从父元素获取不透明度值。
使用此代码,子元素从父元素获取不透明度值。
我需要重置/设置孩子的元素不透明度为任意值。
参考浏览器是Maple浏览器(适用于三星电视应用程序)。
.video-caption { position: absolute; top:50px; width: 180px; height: 55px; background-color: #000; -khtml-opacity:.40; -moz-opacity:.40; -ms-filter:"alpha(opacity=40)"; filter:alpha(opacity=40); filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0.4); /*just for testing*/ opacity:.40; } .video-caption > p { color: #fff !important; font-size: 18px; -khtml-opacity:1; -moz-opacity:1; -ms-filter:"alpha(opacity=100)"; filter:alpha(opacity=100); filter: progid:DXImageTransform.Microsoft.Alpha(opacity=1); opacity:1; }
编辑标记
<div> <img id="videothb-1" src="https://xxxxx/splash.jpg"> <div class="video-caption"> <p>Description here</p> </div> </div>
解决方法
您可能有的问题(基于查看您的选择器)是,不透明度影响父级的所有子元素:
div { background: #000; opacity: .4; padding: 20px; } p { background: #f00; opacity: 1; }
http://jsfiddle.net/Kyle_Sevenoaks/TK8Lq/
但有一个解决方案!使用rgba背景值,你可以有透明度,无论你想要:)
div { background: rgba(0,0.4); /*opacity: .4;*/ padding: 20px; } p { background: rgba(255,1); /*opacity: 1;*/ }
http://jsfiddle.net/Kyle_Sevenoaks/TK8Lq/1/
对于文本,您只需使用相同的rgba代码,但设置为CSS的color属性:
color: rgba(255,255,1);
但是你必须使用rgba在一切为了工作,你必须删除所有父元素的不透明度。