Как вертикально выровнять текст в плавающем div? Например: у меня есть динамическое содержимое с фиксированной высотой. если контент мал или большой, он должен автоматически выравниваться по вертикали.
Спасибо
Как вертикально выровнять текст в плавающем div? Например: у меня есть динамическое содержимое с фиксированной высотой. если контент мал или большой, он должен автоматически выравниваться по вертикали.
Спасибо
Ячейки таблицы являются самым простым решением.
Javascript - это альтернатива (измерьте размер и размер текста div, затем отрегулируйте отступы или линейную подсветку или что-то еще).
edit: Или этот удивительный css:
CSS
div#container {
border: solid 1px;
height: 300px;
}
div#content {
border: solid 1px;
}
div#balance {
border: solid 1px;
/* gotta be 100% */
height: 100%;
}
div.valign {
/* firefox 2 */
display: -moz-inline-box;
/* everybody else */
display: inline-block;
vertical-align: middle;
}
/* IE 6 and 7 hack */
html* div.valign {
display: inline;
}
HTML
<div id="container">
<div id="balance" class="valign"></div>
<div id="content" class="valign">
Blah blah blah blah<br/>
Blah blah blah blah<br/>
Blah blah blah blah<br/>
Blah blah blah blah<br/>
Blah blah blah blah
</div>
</div>
Имело смысл сделать сообщение в блоге об этом некоторое время, я думаю, что это время.
Я знаю, что это разрушит мою репутацию, но... используйте ячейку таблицы. Любое кросс-браузерное решение CSS для вертикального выравнивания будет в два раза сложнее поддерживать, будучи оптимистичным.
<div style="display: table-cell; vertical-align: middle;">I'm in the middle!</div>
Крис Койер написал отличный учебник по этому поводу: http://css-tricks.com/vertically-center-multi-lined-text/
Я использовал его сам, и он отлично работает.
Я столкнулся с этой проблемой раньше. Я процитирую экспертов, поэтому я не выдумываю этого: "... внутренний объект абсолютно расположен на половине высоты области, а затем поднимается на половину высоты".
Это может быть сделано с помощью% вместо точных пикселей, если данные генерируются из базы данных, а высота зависит от каждой страницы.
Источник: здесь
Демо: ссылка на приведенную выше страницу
Вот мой первый ответ...
Вы пробовали вертикально-выровнять: средний;