Какие есть способы замены черного изображения на белое с помощью css при :hover
?
Использую такой способ (не очень хороший, потому как 2 изображения нужно загружать):
.img {
display: block;
}
.img_hover {
display: none;
}
.box:hover .img {
display: none;
}
.box:hover .img_hover {
display: block;
}
<div class="box">
<img src="https://dummyimage.com/200x200/000/fff&text=black" alt="" class="img">
<img src="https://dummyimage.com/200x200/fff/000&text=white" alt="" class="img_hover">
</div>
Может быть есть способ с помощью фильтра или еще какие-нибудь варианты? Картинка должна быть именно инлайновой (не фоном) и эффект должен быть максимально кроссбраузерным.
Можно воспользоваться фильтром invert()
.img:hover {
filter: invert(100%);
}
<div class="box">
<img src="https://dummyimage.com/200x200/000/fff&text=black" alt="" class="img">
</div>
Данный код не будет работать в IE (в EDGE все нормально), так как у него свои фильтры. Судя по справке для IE стиль должен использовать фильтр BasicImage cо свойством invert
Но у меня пример из справки не заработал:
.img:hover {
filter: progid: DXImageTransform.Microsoft.BasicImage(Invert=1);
}
<div class="box">
<img src="https://dummyimage.com/200x200/000/fff&text=black" alt="" class="img">
</div>
Так же указано, что начиная с IE10 такие фильтры устаревшие и отключены по умолчанию.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок