Si quieres alinear el texto en medio de un div (tanto en ancho como en alto), si no me equivoco el vertical-align:middle solo funciona para elementos de linea y no de bloque como es el div. (si es una burrada lo que digo, pido las disculpas del caso, pero así lo habia entendido yo). En ese caso puedes transformar ese div mediante display:inline
http://www.librosweb.es/css/capitulo6/texto1.html http://www.librosweb.es/referencia/css/display.html
Para ubicar la imagen a la izquierda, puedes hacerlo mediante el estilo para la imagen, flotandola a la izquierda por ejemplo.
Es decir:
y en el html:
Código HTML:
Ver original<div style='background-color:Dimgray;color:white;text-align: center;height: 5px;font-size:21px;vertical-align:middle'><img src='7.jpg' class="imagen"/>Reporte de productos
</div>