创建具有子元素的透明元素时遇到问题。使用此代码,子元素将从父元素获取不透明度值。
我需要将孩子的元素不透明度重置/设置为任意值。参考的浏览器为Maple Browser (for a Samsung TV Application)。
Maple Browser (for a Samsung TV Application)
.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; }
但是有解决方案!使用rgba背景值,您可以随时随地保持透明:)
div { background: rgba(0, 0, 0, 0.4); /*opacity: .4;*/ padding: 20px; } p { background: rgba(255, 0, 0, 1); /*opacity: 1;*/ }
对于文本,您可以只使用相同的rgba代码,但是将其设置为CSS的color属性:
color: rgba(255, 255, 255, 1);
但是您必须在所有内容上使用rgba才能使此功能起作用,您必须删除所有父元素的不透明度。