En una página de carga de imágenes tengo una vista previa de la imagen. Me gustaría crear una superposición que muestre la imagen en un rectángulo en el medio, con una superposición opaca alrededor del exterior del rectángulo.
Similar a ésto:
Puedo crear una superposición div, pero necesito invertir el fondo negro opaco para que esté en el resto de la imagen pero no en el rectángulo. De esta manera, puedo obtener una vista previa para el usuario de cómo se verá el producto final.
Esto es lo que tengo:
.wrapper { position: relative; height: fit-content; width: fit-content; display: flex; } .overlay { max-width: 100%; height: 100%; aspect-ratio: 1 / 1.42; background-color: rgba(0, 0, 0, 0.4); position: absolute; top: 0; left: 150px; border-radius: 0.5rem; } <div class="wrapper"> <img src="https://picsum.photos/500/300"/> <div class="overlay"></div> </div>object-fit: cover ya que necesito que toda la imagen sea visible en sus dimensiones nativas.Espero que el siguiente código cumpla con sus requisitos y resuelva su problema.
.wrapper { position: relative; height: fit-content; width: fit-content; display: flex; } .overlay { height: 100%; position: absolute; top: 0; left: 0; border-radius: 0.5rem; width: 100%; overflow: hidden; } .overlay:before{ position: absolute; content: ''; aspect-ratio: 1 / 1.42; height: 100%; top: 0; left: 50%; transform: translateX(-50%); box-shadow: 0px 0px 0px 145px rgba(0, 0, 0, 0.4); } <div class="wrapper"> <img src="https://picsum.photos/500/300"/> <div class="overlay"></div> </div>