Вы столкнулись с проблемой, связанной с распространением фона, поскольку фон, примененный к body
, имеет специальное поведение
Если вы рассматриваете другой контейнер, он будет работать нормально:
div {
background-color: #fff;
}
.volume-icon {
mix-blend-mode: difference;
}
<div>
<img class="volume-icon" src='https://svgshare.com/i/HxZ.svg'>
</div>
С элементом body
необходимо предоставить фон для html
, отличный от прозрачного, и он будет работать:
body {
background-color: #fff;
}
.volume-icon {
mix-blend-mode: difference;
}
html {
background-color: #fff; /* even the same color will do the job */
}
<img class="volume-icon" src='https://svgshare.com/i/HxZ.svg'>