Вертикальное выравнивание строчным псевдоэлементом

by Ksenia Polyakova

HTML

<div class="outer">
    <div class="inner">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</div>
</div>

<!-- Суть способа в добавлении внутри внешнего блока строчного блока inline-block высотой в 100% и задания ему вертикального выравнивания. В этом случае высота добавленного блока будет равна высоте внешнего блока. Внутренний блок выровняется по вертикали относительно добавленного, а значит, и внешнего блока.

Чтобы не нарушать семантику, строчный блок рекомендуется добавить с помощью псевдоэлемента before или after.


 не может быть применен, если внутренний блок имеет абсолютное позиционирование или float
 -->

CSS

.outer {
    width: 200px;
    height: 200px;
    
    text-align: center;
    background-color: #ffc;
}

.outer:after {
    display: inline-block;
    height: 100%;

    vertical-align: middle;
    content: "";
}

.inner {
    display: inline-block;
    width: 100px;

    vertical-align: middle;
    background-color: #fcc;
}