cssborderinsets

How to do an inset border with a border radius on an image


How do to an inset border with a border radius on an image like so: enter image description here

I can use the outline CSS property

.img{
    border-radius: 16px;
    outline: 3px solid #fece40;
    outline-offset: -16px;  
}

But that gives me the inset border but there is no radius setting for outline.


Solution

  • Use an extra div and consider pseudo element:

    .img {
      border-radius: 16px;
      display: inline-block;
      overflow: hidden;
      position: relative;
    }
    
    .img:before {
      content: "";
      position: absolute;
      border-radius: inherit;
      border: 3px solid #fece40;
      inset: 16px;
    }
    
    img {
      display: block;
    }
    <div class="img"><img src="https://picsum.photos/id/237/200/200"></div>