Я хочу иметь вертикальное меню с определенной высотой.
Каждый ребенок должен заполнять высоту родителя и иметь средний выровненный текст.
Число детей случайное, поэтому мне приходится работать с динамическими значениями.
Div .container
содержит случайное число детей (.item
), которые всегда должны заполнять высоту родителя. Для этого я использовал flexbox.
Для создания ссылок с текстом, выровненным по середине, я использую метод display: table-cell
. Но использование табличных дисплеев требует использования высоты 100%.
Моя проблема в том, что .item-inner { height: 100% }
не работает в webkit (Chrome).
- Есть ли исправление для этой проблемы?
- Или существует другой способ сделать все
.item
заполнять высоту родителя текстом по вертикали, выровненным до середины?
Пример здесь jsFiddle, должен быть просмотрен в Firefox и Chrome
.container {
height: 20em;
display: flex;
flex-direction: column;
border: 5px solid black
}
.item {
flex: 1;
border-bottom: 1px solid white;
}
.item-inner {
height: 100%;
width: 100%;
display: table;
}
a {
background: orange;
display: table-cell;
vertical-align: middle;
}
<div class="container">
<div class="item">
<div class="item-inner">
<a>Button</a>
</div>
</div>
<div class="item">
<div class="item-inner">
<a>Button</a>
</div>
</div>
<div class="item">
<div class="item-inner">
<a>Button</a>
</div>
</div>
</div>