CSS <img> относительное позиционирование по сравнению с background-image + background-position

Я работаю на странице миниатюр для галереи изображений. Предварительный просмотр миниатюр сделан как<ul>&nbsp;с плавающей<li>&nbsp;с фиксированным, квадратным размером.

Миниатюры изображенийсамих себя&nbsp;однако они не обязательно квадратные или одинакового размера, они имеют свойства больших изображений, которые они представляют.

Чтобы это выглядело хорошо, я бы хотел отобразить центр миниатюрного изображения в квадрате.<li>, срезая одинаковое количество перелива влево и вправо (см.Инжир. 1):

 +..+---------+..+                +---------+....+
 ://|  /\_/\  |//:                |     /\_/|////:
 ://| ( o.o ) |//:                |    ( o.o|////:
 ://|  > ^ <  |//:                |     > ^ |////:
 ://| {o___o} |//:                |    {o___|////:
 +..+---------+..+                +---------+....+
          (fig. 1)                        (fig. 2)

Я могу сделать это, удалив<img>&nbsp;тег и определение (CSS-спрайт):

<li style="width: x; height: x; overflow: hidden;">
   <div style="background: url(...) no-repeat center center;"/>
</li>

Это работает и выглядит красиво, но только если у вас включен CSS. Плюс это не очень семантически, так как изображение не отображается<img>&nbsp;тег.

Когда я использую<img>&nbsp;тег на месте внутреннего<div>&nbsp;выше, вещи больше похожи наИнжир. 2.

Как бы я переместил<img>&nbsp;с помощью CSS, чтобы всегда быть в центре, независимо от того, насколько широко на самом деле уменьшенное изображение? Я предполагаю, что какое-то относительное позиционирование может сделать это, но наивноposition: relative; left: -50%;&nbsp;не работает.

П.С .: Да, я знаю, что мог бы сделать все миниатюры квадратными, предположив, что это не тот ответ, который я ищу.