есть свойство
object-fit, но у него плохая поддержка браузерами на данный момент.
Я в таких случаях использую фоновое изображение.
Если размеры дива известны - то тут все просто, просто задаем фон
<div style="background-image:url(image.jpg)"></div>
а в css заданы остальные параметры фона, в том числе background-size
Если размеры дива по одному из измерений зависят от изображения, то можно оставить картинку внутри, сделав ее полностью прозрачной (div img {opacity: 0}), а с фоном провернуть ту же штуку, что в предыдущем примере.