Для выравнивания по вертикали нужно либо выставить у родительского элемента display: table-cell и vertical-align: middle, не будет правда работать в ie7. Второй вариант — использовать line-height: 100% у дополнительного мест минского э элемента, и обоим им ввыставить vertical-align middle.
Извиняюсь, что описываю текстом — с телефона пишу.
Для того, чтобы родительский блок «схлопывался» до размеров самого большого блочного элемента, нужно использовать у родительского блока display: table.
Подробнее смотрите тут: habrahabr.ru/qa/28701/