Capitão Óbvio aqui. Apenas trate os elementos de bloco como inline:
display: inline-block;
Desta forma, você pode usar vertical-align: middle;
e outros atributos disponíveis apenas para elementos embutidos, deixando o layout do bloco intacto.
Você ficará surpreso com quantas peculiaridades o bloco inline pode resolver (em comparação com a float: left;
solução).
Um bom design responsivo é apenas um deles.
Consulte também: Desacoplar classes JavaScript das CSS usando prefixo