Самое кросс-браузерное решение - это использовать свойство opacity для дополнительного «абсолютно позиционированного» дочернего элемента (в относительно или абсолютно позиционированном родительском элементе): он только там должен содержать цветной прозрачный фон.
Затем вы можете использовать свойство opacity
, чтобы сделать этот элемент прозрачным. Поскольку этот элемент не имеет дочерних элементов, непрозрачность не повлияет на другие элементы.
Непрозрачность - это свойство IE5 +, просто используйте (см. http://css -tricks.com / snippets / css / cross-browser-opacity / ):
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; /* IE 8 */
filter: alpha(opacity=50); /* IE 5-7 */
-moz-opacity: 0.5; /* Netscape */
-khtml-opacity: 0.5; /* Safari 1.x */
opacity: 0.5; /* Good browsers */
см. Пример jsFiddle http://jsfiddle.net/DUjzX/1/
Весь код выглядит так:
HTML:
<div class="my-cool-wrapper">
<div class="text-and-images-on-top">
<p>Here some content (text AND images) "on top of the transparent background"</p>
<img src="http://i.imgur.com/LnnghmF.gif">
</div>
<div class="transparent-background">
</div>
</div>
CSS:
.my-cool-wrapper {
position: relative;
}
.my-cool-wrapper .text-and-images-on-top {
padding: 10px 15px 19px 15px;
z-index: 1;
position: relative; /* needed to enable the z-index */
}
.my-cool-wrapper .transparent-background {
position: absolute;
top: 0;
width: 100%;
height: 100%;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=10)"; /* IE 8 */
filter: alpha(opacity=10); /* IE 5-7 */
-moz-opacity: 0.1; /* Netscape */
-khtml-opacity: 0.1; /* Safari 1.x */
opacity: 0.1; /* Good browsers */
background-color: blue;
}
читать дальше:
Установить непрозрачность фонового изображения, не затрагивая дочерние элементы
Скриншоты с доказательствами
![IE11](https://i.stack.imgur.com/zmK1e.png)
ps: я не добавил скриншоты для Chrome, Firefox и Safari, так как это гораздо «лучшие» браузеры ... поверьте, это работает и для них.