Линейный блок может иметь несколько элементов с разной высотой строки. Например:
<p>
<span class="segment1">Segment 1</span>
<span class="segment2">Segment 2</span>
<span class="segment3">Segment 3</span>
</p>
По умолчанию все элементы в абзаце имеют одинаковую высоту строки.
Но если элементы span имеют меньшую высоту строки, чем абзац, я могу настроить их относительно друг друга с помощью vertical-align
.
p {
background-color: black;
color: white;
line-height: 40px;
}
.segment1 {
background-color: red;
line-height: 20px;
vertical-align: top;
}
.segment2 {
background-color: green;
line-height: 20px;
vertical-align: baseline
}
.segment3 {
background-color: blue;
line-height: 20px;
vertical-align: bottom;
}
Посмотрите на этот код: https://codepen.io/anon/pen/pVWQQy
Свойство vertical-align
может использоваться для вертикального выравнивания блока встроенного элемента внутри содержащего строки .
В первом примере вы пытаетесь выровнять текст по вертикали внутри строки элемента. Это невозможно. Если вы увеличите высоту строки, над и под базовой линией будет добавлено одинаковое пространство.
Во втором примере вы пытаетесь выровнять по вертикали встроенный элемент (<span>
) внутри элемента блока (<div>
), а не строковый блок .