CSS непрозрачность не работает правильно в IE 6 / IE7 или IE8 в режиме совместимости
В следующем коде первое и второе изображения с якорями имеют ссылки, и в этих изображениях текст подписи не скрывается (непрозрачность 0) При загрузке страницы в IE 6 / IE7 или IE8 в режиме Comp. Все остальные изображения работают нормально, но мне нужно, чтобы в них были ссылки.
Вот код в JSfiddle
FF работает нормально, и IE8 в нормальном режиме также хорошо
Я бы разместил здесь весь код, но он довольно длинный, и у меня возникли проблемы с этим.
Добавлено js код
$(window).load(function(){
//for each description div...
$('div.description').each(function(){
//...set the opacity to 0...
$(this).css('opacity', 0);
//..set width same as the image...
$(this).css('width', $(this).siblings('img').width());
//...get the parent (the wrapper) and set it's width same as the image width... '
$(this).parent().css('width', $(this).siblings('img').width());
//...set the display to block
$(this).css('display', 'inline-block');
});
$('div.wrapper').hover(function(){
//when mouse hover over the wrapper div
//get it's children elements with class descriptio
//and show it using fadeTo
//$(this).children('.description').show();
$(this).children('.description').stop().fadeTo(500, 0.7);
},function(){
//when mouse out of the wrapper div
//use fadeTo to hide the div
$(this).children('.description').stop().fadeTo(500, 0);
});
});
Похоже, ему это не нравится...
$(this).css('opacity', 0);
4 ответа:
Это ошибка hasLayout. Вы можете исправить это, добавив
zoom: 1
к вашему div.обертка объявление CSS класса:div.wrapper{ zoom: 1; position:relative; }
Fix в действии здесь.
IE до версии 8 не поддерживает официальную реализацию opacity. В то время как официальная версия
opacity: [0..1]
Реализация IE до версии 8 (и, следовательно, режим совместимости IE8, который действует как IE7) - это
filter: alpha(opacity=[0..100])
Попробуйте их, по крайней мере, для IE7 и 8:
.opaque1 { // for all other browsers opacity: .5; } .opaque2 { // for IE5-7 filter: alpha(opacity=50); } .opaque3 { // for IE8 -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; } $(this).css( { 'opacity': 0, '-ms-filter':"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)", 'filter': 'alpha(opacity=50)' });
Обновление отредактировано, чтобы использовать его код из jsbin