Gib*_*boK 70 javascript css samsung-smart-tv smart-tv
我在创建具有子元素的透明元素时遇到问题.使用此代码,子元素从父元素获取不透明度值.
我需要将子元素的不透明度重置/设置为任意值.浏览器参考是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;
}
Run Code Online (Sandbox Code Playgroud)
编辑标记
<div> <img id="videothb-1" src="https://xxxxx/splash.jpg"> <div class="video-caption"> <p>Description here</p> </div> </div>
Run Code Online (Sandbox Code Playgroud)
Kyl*_*yle 156
您可能遇到的问题(基于查看您的选择器)是不透明度会影响父级的所有子元素:
div
{
background: #000;
opacity: .4;
padding: 20px;
}
p
{
background: #f00;
opacity: 1;
}?
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/Kyle_/TK8Lq/
但有一个解决方案!使用rgba背景值,你可以随时随地拥有透明度:)
div
{
background: rgba(0, 0, 0, 0.4);
/*opacity: .4;*/
padding: 20px;
}
p
{
background: rgba(255, 0, 0, 1);
/*opacity: 1;*/
}?
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/Kyle_/TK8Lq/1/
对于文本,您可以使用相同的rgba代码,但设置为CSS的color属性:
color: rgba(255, 255, 255, 1);
Run Code Online (Sandbox Code Playgroud)
但是你必须在所有东西上使用rgba才能工作,你必须删除所有父元素的不透明度.
http://jsfiddle.net/Kyle_/TK8Lq/2/
凯尔的解决方案很好.
此外,如果您不喜欢使用RGBA设置颜色,而是使用HEX,则可以使用解决方案.
以LESS为例,你可以使用如下的mixin:
.transparentBackgroundColorMixin(@alpha,@color) {
background-color: rgba(red(@color), green(@color), blue(@color), @alpha);
}
Run Code Online (Sandbox Code Playgroud)
并使用它
.myClass {
.transparentBackgroundColorMixin(0.6,#FFFFFF);
}
Run Code Online (Sandbox Code Playgroud)
实际上这就是内置的LESS功能还提供了:
.myClass {
background-color: fade(#FFFFFF, 50%);
}
Run Code Online (Sandbox Code Playgroud)