Вариации по этому вопросу задавались много раз. Вертикальное центрирование с помощью CSS является сложной задачей.
У меня есть определенный сценарий, связанный со списком, отображаемым горизонтально. Разметка выглядит так:
<ul id='ul1' class='c'>
<li><a href='javascript:void(0)'>Fribble Fromme</a></li>
<li><a href='javascript:void(0)'>Fobble</a></li>
<li><a href='javascript:void(0)'>Foo Fickle Pickle</a></li>
</ul>
Стиль такой:
ul.c {
height:52px;
text-align:center;
}
ul li a {
float:left;
text-decoration:none;
border: 1px solid Maroon;
padding:2px 12px;
background:#FFEF8A;
line-height:1em;
width:100px;
}
ul li a:hover {
background: #CCC;
}
ul li {
height:52px;
display:inline-block;
}
Результирующий список выглядит так:
Но я хочу, чтобы все поля были одинаковой высоты, и я хочу, чтобы текст располагался вертикально по центру в каждом поле. Я могу установить высоту блока, добавив стиль height
для элементов A. Результат выглядит так:
... что близко к тому, что я хочу, но вертикальное центрирование не происходит.
Я могу установить line-height
для текста, , как предлагается в этом посте , для вертикального центрирования. Я даже могу выбрать разные значения line-height
для разных элементов A, если я знаю, какой из элементов получит несколько строк текста. Но я не знаю, какие из них потребуют нескольких строк.
Как мне расположить его по центру, если на некоторых элементах A есть текст, который переносится?