#css #internet-explorer-7 #hover #opacity
#css #internet-explorer-7 #наведите курсор #непрозрачность
Вопрос:
Я использую CSS hover и opacity, чтобы одно изображение менялось на другое при наведении на него курсора, помещая одно сверху и устанавливая непрозрачность так, чтобы оно исчезало при наведении курсора, а нижнее изображение оставалось левым. Код выглядит следующим образом:
#fade {
overflow:hidden;
margin:0 auto;
}
#fade img {
position:absolute;
left:0;
top:0;
right:0;
bottom:0;
width:100%;
height:100%;
-webkit-transition: opacity 1s ease-in-out;
-moz-transition: opacity 1s ease-in-out;
-o-transition: opacity 1s ease-in-out;
transition: opacity 1s ease-in-out;
}
#fade img.topfade:hover {
opacity:0;
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=5)";
filter:alpha(opacity=.5);
-moz-opacity:0.5;
-khtml-opacity: 0.5;
}
Это отлично работает в ie8, ie9 и Firefox, но в ie7 второго изображения нет, когда первое изображение становится невидимым. Кто-нибудь знает, как это исправить?
Комментарии:
1. мой ответ не был хорошим, поэтому я удалил его. Я пытался работать с вашим CSS в jsfiddle — см. jsfiddle.net/8HLdx — но, я думаю, мне также нужно было увидеть ваш HTML-код. Не стесняйтесь поиграть с примером в JSFiddle; это отличная небольшая игровая площадка для тестирования JS и CSS-кода. Я не вижу никакой непрозрачности в тесте ни в IE7, ни в IE8, но, как я уже сказал, мне пришлось угадать вашу HTML-структуру.
2. непрозрачность используется только для того, чтобы первое изображение исчезло, чтобы показать то, что за ним. HTML: <div class=»moveable»><li> <div class=»fade»><a href=»#»><img class=»bottom» src=»images/pic.jpg » /><img class=»topfade» src=»images/pic.jpg » /></a></div></li></div>
Ответ №1:
Я сделал демо, которое, похоже, работает для меня в Chrome, Firefox и IE7.
Это работает в IE8 , поскольку -ms-filter
правило верно, однако непрозрачность в IE7 является filter:alpha(opacity=xx)
правилом, и значение должно быть между 0 и 100. Ваше текущее значение .5
делает наведенное изображение почти полностью непрозрачным (и я не уверен, что оно вообще допустимо).
quirksmode содержит хорошее описание различных правил CSS непрозрачности для IE.
Примечание: В вашем примере структуры вам не хватает <ul>
или <ol>
перед <li>
, которые я добавил в демо.