Непрозрачность CSS не работает в IE7 или IE8 даже при запущенном hasLayout

У меня есть это слайд-шоу с наложением, которое появляется при наведении курсора, вы можете просмотреть его здесь. Просто наведите курсор мыши на любые фотографии ниже раздела "Избранные". Отлично работает в FF, Webkit, IE9. Я сделал отдельную таблицу стилей для менее чем IE9, и в ней я объявил ширину, высоту, масштабирование, позиционирование, использовал все фильтры, которые работают в IE.... и я не получаю непрозрачность ни в IE7, ни в IE8. DIV с наложением классов добавляется с JQuery, это проблема? Вот мой CSS:

.overlay {
background-color:#fff;
 filter:alpha(opacity=60);
 -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
 filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=65);
 zoom:1;
 width:160px;
 height:20px;
 z-index:50;
 position:absolute;
 bottom:0;
 }

1 ответ

Решение

Ваша процедура затухания добавляет встроенный стиль, который приводит к progid:DXImageTransform.Microsoft.Alpha(Opacity=60) который переопределяет ваш filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=65) в вашем css. Для рутины затухания характерно использование встроенного стиля, но вы должны убедиться, что он либо заканчивается там, где вам нужно (с непрозрачностью 65%), либо уходит после затухания, чтобы использовать CSS (в Firefox кажется, что он постепенно исчезает со встроенной строкой, а затем удаляет встроенную строку, чтобы прозрачность таблицы стилей была подобрана).

Редактировать (добавлена ​​информация из комментария о затухании с помощью jquery): если вы используете .fadeIn() тогда попробуйте вместо этого использовать .fadeTo(400, 0.65) (см. http://api.jquery.com/fadeTo), 400 - это длительность по умолчанию для .fadeIn(), так что вы можете изменить это, и второе число является окончательной настройкой непрозрачности

Другие вопросы по тегам