CSS <img> posicionamiento relativo frente a imagen de fondo + posición de fondo

Estoy trabajando en una página de miniaturas para una galería de imágenes. Las vistas previas en miniatura se realizan como<ul> con flotante<li> con un tamaño fijo y cuadrado.

Las imágenes en miniaturasí mismos sin embargo, no son necesariamente cuadrados o del mismo tamaño, tienen las propiedades de las imágenes grandes que representan.

Para que se vea bien, me gustaría mostrar el centro de la imagen en miniatura en el cuadrado<li>, cortando una cantidad igual de desbordamiento hacia la izquierda y hacia la derecha (verhigo. 1):

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

Puedo hacer esto quitando el<img> etiqueta y definición (CSS sprite):

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

Esto funciona y se ve bien, pero solo cuando tienes CSS habilitado. Además, no es muy semántico, ya que la imagen no se muestra<img> etiqueta.

Cuando uso un<img> etiqueta en lugar del interior<div> arriba, las cosas se parecen más ahigo. 2.

¿Cómo movería el<img> a través de CSS para estar siempre centrado, sin importar cuán ancha sea la imagen en miniatura en realidad. Supongo que algún tipo de posicionamiento relativo podría hacerlo, pero un ingenuoposition: relative; left: -50%; No funciona.

P.S .: Sí, sé que podría hacer que todas las miniaturas cuadren, suponga que esta no es la respuesta que estoy buscando.

Respuestas a la pregunta(1)

Su respuesta a la pregunta