Моя попытка заключалась в том, чтобы сложить два изображения друг на друга с позицией: абсолютный;. Нижнее изображение — это то, которое нужно блестеть, а верхнее — сам блеск. А затем примените режим смешивания: осветлить; (или наложение, или что получится лучше) к изображению с блестками. Это работает, но блеск не распространяется только на непрозрачные части изображения.
Теперь мне интересно, можно ли вообще реализовать этот эффект с помощью простого CSS? Альтернативой является подготовка предварительно блестящих версий всех соответствующих изображений, но из-за размера файла и проблем с обслуживанием я бы предпочел этого не делать.
Вы можете увидеть это в действии в этом коде. перо.
На данный момент у меня есть код:
Код: Выделить всё
[img]images/icons.png[/img]
[img]images/glint.webp[/img]
Код: Выделить всё
.icon {
position: relative;
display: inline-block;
background-color: #000080;
}
.icon .type {
width: 24px;
height: 24px;
position: absolute;
top: 0px;
left: 0px;
object-fit: none;
object-position: 0px 0px; /* its a css image sprite */
z-order: 10;
}
.icon .glint {
width: 24px;
height: 24px;
position: absolute;
top: 0px;
left: 0px;
z-order: 11;
mix-blend-mode: overlay;
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... -using-css