Cuando quieres centrar una imagen dentro de un div suele bastar con esto:
text-align: center;
vertical-align: middle;
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-o-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
Esto centra la imagen, tanto verticalmente como horizontalmente dentro del div en la mayoría de navegadores.
Pero imagínate que no es un div, si no varios y pueden ser 3 como 23 y los quieres ordenar en filas de 4, después de varias pruebas me di cuenta que si por ejemplo en vez ser 1 div son 2, la y tiene que ser 100% y si son 3 divs la y tiene que ser de 150% y 4 divs la y pasa a ser del 200%, pero claro, esto es algo que yo no se, ya que los divs se crean en relación al tamaño de la cantidad de elementos de la base de datos y puede variar, y de echo varia según se escoge una opción u otra. La X no me preocupa tanto ya que puedo ir creando divs padres que abarquen cada linea con lo que me interesa es la horizontal (Y), no la vertical (X), pero imagino que es lo mismo:
1 --> 50%
2 --> 100%
3 --> 150%
...
Entonces si no puede ser por simple CSS, con la ayuda jquery ¿hay alguna manera que yo pasandole el numero de elementos (divs) calcule la Y y la X?