Как сделать прозрачное «отверстие» в блоке с фоном?

Есть блок, залитый каким то цветом. На фоне блока находится изображение. Необходимо в блоке сделать как бы "дырку", т.е. участок, в котором блок будет прозрачным. Например круглой формы. Или, как на примере, в форме сердца.

Проиллюстрирую:
2ec571fd923148e7baac5192f0ab30a9.jpg

Кроме как png ничего в голову не приходит.
  • Вопрос задан
  • 9201 просмотр
Пригласить эксперта
Ответы на вопрос 5
А ничего другого в голову и не должно придти.
div {
background-color: red;
background-image: url(images/heart.png);
background-position: center center; /*Только тут пишешь куда тебе поставить его надо*/
}
Ответ написан
Примерно так делается - это svg.
ИМХО маски использовать нельзя пока, поддержка браузерами
Ответ написан
Комментировать
Trow_eu
@Trow_eu
лучше через маску, но если попроще, тобишь таки через png, но чтобы "просматривалось" - картинка на весь слой, представляющая из себя дырку окруженную фоном.
вариант с заливкой фоном и картинкой, предложенный выше, подходит только для статичного положения кнопки относительно фона, да и делается не легче. из-за размера такой картинки переживать, думаю, не стоит.
Ответ написан
Есть один сумасшедший вариант, если уж реально так нужно сделать ..
Разбить прямоугольник на две части, в них еще на части и через фигуры образовать "полусердца" с одной и другой стороны, соединить и прописать через z-index xD
Ну и SVG, да =)
Ответ написан
Комментировать
@Mindr17
Нарисовать всю красную фигуру при помощи CSS, как у них: fontawesome.io
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы