Почитал маны, пишут что бы автоматически выровнялось по высоте надо задать line-height больше или равным чем у родителя. Но тут не срабатывает.
Пример https://jsfiddle.net/u5vypq19/
DrunkMaster: Во-первых, em как-раз-таки зависит от размера шрифта =)
Во-вторых, это не имеет никакого отношения к вертикальному выравниванию. Тут важно то, что обнулены margin-top и margin-bottom, которые браузер назначает по умолчанию.