Как сохранить непрозрачность текста 100, когда его родительский контейнер имеет непрозрачность 50
У меня есть список div, у которого есть непрозрачность, равная 50, и внутри этого div я хочу отобразить некоторый текст с непрозрачностью 100,
Вот что я имею в виду:
<div id="outer">
<div id="inner">
Text
</div>
</div>
CSS:
#outer {
opacity: 0.5;
}
#inner {
opacity: 1.0;
}
Я пробовал это, но он не работает.
пожалуйста, помогите
Привет
Ответы
Ответ 1
Простое и совместимое решение - удалить все ваши opacity
и использовать:
#outer {
background: url(50%-transparent-white.png);
background: rgba(255,255,255,0.5)
}
- Браузеры, поддерживающие
rgba
, будут использовать второе объявление background
с rgba
.
- Браузеры которые не будут, будут игнорировать второе объявление
background
и использовать .png
.
.png
не будет работать в IE6, но проблема вряд ли будет проблемой. Если это так, он может быть разрешен.
Далее описан еще один метод:
http://robertnyman.com/2010/01/11/css-background-transparency-without-affecting-child-elements-through-rgba-and-filters/
Ответ 2
Есть два способа сделать это: нужно просто установить фоновый цвет контейнера в прозрачный цвет с помощью rgba(r,g,b,.5)
- однако это CSS3 и поддерживается только в новых браузерах.
Другим способом является падение абсолютно позиционированного div внутри контейнера с непрозрачностью .5.
<div class="backgroundOpacity">
My Epic Content
</div>
<br/>
<div class="backgroundDiv">
<div id="background"> </div>
My Other Epic Content
</div>
.backgroundOpacity {
background-color:rgba(0,0,0,.5);
}
.backgroundDiv {
position:relative;
}
#background {
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
background-color:#000;
opacity: .5;
}
http://jsfiddle.net/thomas4g/vVt8D/1/
Ответ 3
background-color: rgba(0,0,0,0.5);
Ответ 4
Вы можете установить свой внешний div таким образом
background-color: rgba(0, 0, 0, 0.8);
opacity: inherit;