Сброс непрозрачности дочернего элемента-Maple Browser (приложение Samsung 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;
}
РЕДАКТИРОВАТЬ РАЗМЕТКУ
<div> <img id="videothb-1" src="https://xxxxx/splash.jpg"> <div class="video-caption"> <p>Description here</p> </div> </div>
3 ответа:
проблема, которую вы, вероятно, имеете (на основе просмотра ваших селекторов), заключается в том, что непрозрачность влияет на все дочерние элементы родителя:
div { background: #000; opacity: .4; padding: 20px; } p { background: #f00; opacity: 1; }
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;*/ }
http://jsfiddle.net/Kyle_/TK8Lq/1/
для текста, вы можете просто использовать тот же код RGBA и установить свойство цвета CSS:
color: rgba(255, 255, 255, 1);
но вы должны использовать rgba на все, чтобы это работало, вы должны удалить непрозрачность для всех родительских элементов.
решение Кайла работает отлично.
кроме того, если вы не хотите устанавливать свои цвета с помощью RGBA, а скорее с помощью HEX, есть решения.
С меньшим для примера, вы можете использовать миксин, как:
.transparentBackgroundColorMixin(@alpha,@color) { background-color: rgba(red(@color), green(@color), blue(@color), @alpha); }
и использовать его как
.myClass { .transparentBackgroundColorMixin(0.6,#FFFFFF); }
на самом деле это встроенный меньше функции предоставляем:
.myClass { background-color: fade(#FFFFFF, 50%); }
посмотреть как конвертировать шестнадцатеричный цвет в rgba с меньшим компилятором?
ответ выше работает хорошо, однако для людей, которые любят использовать шестнадцатеричные цветовые коды, вы можете установить прозрачность самим шестнадцатеричным цветом. EXP: #472d20b9-последние два значения задают непрозрачность для цвета, в то время как #472d20 будет иметь тот же цвет, но без непрозрачности. Примечание: отлично работает в Chrome и Firefox, в то время как Edge и IE не. Не было возможности проверить ее в других браузерах.