Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Opacity в IE8 (https://javascript.ru/forum/css-html-internet-explorer/13642-opacity-v-ie8.html)

Snipe 07.12.2010 18:17

Opacity в IE8
 
У меня есть див, внутри которого другой див с фоном из PNG.
Мне нужно сделать всю эту конструкцию полупрозрачной.

В ие8 есть
Код:

filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
Однако этот фильтр отрубает прозрачность для png.
Нашел как включить прозрачность для png, однако включается она для картинки, которая стоит в теге <img>, а не в фоне:
document.getElementById("img1").style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=fig0902.png,sizingMethod='scale')";


Как быть?
П.С. Вынуть PNG из фона нельзя по условиям задачи =)

рони 07.12.2010 23:23

Snipe,
А может саму картинку отредактировать?

monolithed 08.12.2010 06:45

Может так:

<div style="background:  url('http://javascript.ru/forum/images/ca_serenity/misc/logo.gif'); width:  100px; height: 75px;"></div>

<script type="text/javascript">
window.onload = function(){
    (function(i){
        element = document.getElementsByTagName("div")[0];
        if(!element) return;
        var alpha = element.filters['DXImageTransform.Microsoft.alpha'] || element.filters.alpha;
        alpha ? alpha.opacity = i : element.style.filter += "progid:DXImageTransform.Microsoft.Alpha(opacity="+i+")";
    })(50);
};
</script>


или так:
<div style="background:  url('http://javascript.ru/forum/images/ca_serenity/misc/logo.gif'); width:  100px; height: 75px;"></div>

<script type="text/javascript">
window.onload = function(){
    (function(i){
        element = document.getElementsByTagName("div")[0];
        if(!element) return;
        var alpha = element.filters['DXImageTransform.Microsoft.alpha'] || element.filters.alpha;
        alpha ? alpha.opacity = i : element.runtimeStyle.filter += "progid:DXImageTransform.Microsoft.Alpha(opacity="+i+")";
    })(50);
};
</script>


Часовой пояс GMT +3, время: 21:12.