Css Вертикальное выравнивание
У меня есть кнопки с одним порядком столбцов внутри div. Количество кнопок меняется. Я хочу выровнять кнопки по вертикали. "вертикальное выравнивание: середина" не работает. Как я могу это сделать?
Высота Div фиксирована. http://jsfiddle.net/WmD3L/ Как я могу выровнять эти кнопки по вертикали?
2 ответа
Если кнопка имеет фиксированную высоту, вы можете использовать высоту строки, чтобы поместить текст в середину.
например
#button {
height: 50px;
line-height: 50px; //Must be the same as height to vertically align to the middle
}
Вы также можете использовать
#button {
display: table-cell;
vertical-align: middle;
}
Но я не думаю, что это работает кросс-браузер, к сожалению.
Это лучший способ, по моему мнению (это IE8 +):
HTML:
<div class="block">
<div class="centered">
<div><input type="submit" value="ABC"/></div>
<div><input type="submit" value="ABC"/></div>
<div><input type="submit" value="ABC"/></div>
</div>
</div>
CSS:
/* Can be any width and height */
.block {
height:500px;
text-align: center;
}
/* The ghost, nudged to maintain perfect centering */
.block:before {
content:'';
display: inline-block;
height: 100%;
vertical-align: middle;
margin-right: -0.25em; /* Adjusts for spacing */
}
/* The element to be centered, can be any width or height */
.centered {
display: inline-block;
vertical-align: middle;
width: 300px;
}