If the background-image with background-size:cover not enough and it is img that is needed, you can do this:
div { position: relative; overflow: hidden; border-radius: 50%; width: 60px; height: 60px; } div img { position: absolute; top: 50%; left: 50%; width: auto; height: 100%; transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); -webkit-transform: translate(-50%, -50%); }
<div> <img src="https://placekitten.com/400/200"> </div>
Unfortunately, styles will work only for horizontal images (like 400 × 200), for vertical ones you will need to swap auto and 100% for width and height . I do not know if it is fixable.
Just in case, the version with background-size:cover :
div { border-radius: 50%; width: 60px; height: 60px; background: url("https://placekitten.com/400/200") no-repeat center center; background-size: cover; }
<div></div>