CSS-клип обведите изображение и поместите другое изображение в качестве рамки

Вопрос Similair можно найти здесь:

CSS: Как поместить изображение в круг, где низ обрезается, а верх выскакивает?

Тем не менее, я хотел бы заменить красный контур на изображение, например:

Кофейное пятно

Я пробовал среди других: до и после теги psuedo, но не нашел решения. В каком направлении я должен искать, чтобы достичь этого?

1 ответ

Решение

Вы можете использовать несколько фонов, как это:

.box {
 width:200px;
 height:210px;
 border-radius: 0 0 50% 50%/0 0 70% 70%;
 background:
  url(https://stackru.com/images/d3f6dace04552118323108b7be7f77b003c41f83.png) center/cover, 
  url(https://stackru.com/images/ab95767b7544d2e3ade4d4ec8010dd6f91cdc90c.png) 0 180%/100% auto no-repeat;
 position:relative;
}
.box:after {
  content:"";
  position:absolute;
  z-index:1;
  bottom:0;
  top:50%;
  left:0;
  right:0;
  background:url(https://stackru.com/images/ab95767b7544d2e3ade4d4ec8010dd6f91cdc90c.png) 0 90%/100% auto no-repeat;
}
<div class="box">

</div>

Вы также можете управлять изображением внутри, используя переменную CSS:

.box {
 width:200px;
 height:210px;
 border-radius: 0 0 50% 50%/0 0 70% 70%;
 background:
  var(--image) center/cover, 
  url(https://stackru.com/images/ab95767b7544d2e3ade4d4ec8010dd6f91cdc90c.png) 0 180%/100% auto no-repeat;
 position:relative;
 display:inline-block;
}
.box:after {
  content:"";
  position:absolute;
  z-index:1;
  bottom:0;
  top:50%;
  left:0;
  right:0;
  background:url(https://stackru.com/images/ab95767b7544d2e3ade4d4ec8010dd6f91cdc90c.png) 0 90%/100% auto no-repeat;
}
<div class="box" style="--image:url(https://stackru.com/images/d3f6dace04552118323108b7be7f77b003c41f83.png)">
</div>
<div class="box" style="--image:url(https://stackru.com/images/efb9db6fa30d65df500f200257c8b1ece98dde13.png)">
</div>

Другие вопросы по тегам