Рассмотрим этот HTML:
<!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> div { position: relative; width: 200px; height: 200px; background: #ff0; } span { position: absolute; width: 200px; height: 200px; background: #f00; top: 100px; left: 100px; } </style> </head> <body> <div><span></span></div> </body> </html>
Вывод:
Теперь давайте добавим некоторый код jQuery, который устанавливает непрозрачность содержащего элемента div на любой уровень:
$('div').css({ opacity: '1' });
Вывод теперь такой:
Как этого избежать? Вот тестовая страница .
РЕДАКТИРОВАТЬ: Это также происходит в IE6.
Я обнаружил, что если вы очистите свойство filter, проблема исчезнет.
filter
$('div').css('opacity', '1').css('filter', '');
или
$('div').animate({ opacity: '1' }, function() { $(this).css('filter', '') });