Как выровнять текст по вертикали? - PullRequest
13 голосов
/ 09 июля 2009

Как выровнять текст по вертикали в плавающем div? Например: у меня динамический контент с фиксированной высотой. если контент маленький или большой, он должен автоматически выравниваться по вертикали.

Спасибо

Ответы [ 6 ]

12 голосов
/ 09 июля 2009

Ячейки таблицы - самое простое решение.

Javascript - это альтернатива (измерьте размер и размер текста в div, затем настройте отступы, высоту строки или что-то еще).

редактировать: или это удивительный 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>

Я хотел написать об этом какое-то время, думаю, пришло время.

11 голосов
/ 09 июля 2009

Я знаю, что это разрушит мою репутацию, но ... используйте ячейку таблицы. Любое кросс-браузерное CSS-решение для вертикального выравнивания будет в два раза сложнее поддерживать, будучи оптимистичным.

10 голосов
/ 09 июля 2009
<div style="display: table-cell; vertical-align: middle;">I'm in the middle!</div>
5 голосов
/ 09 июля 2009

Крис Койер написал отличный урок по этому поводу: http://css -tricks.com / vertical-center-multi-lined-text /

Я сам использовал его, и он отлично работает.

2 голосов
/ 09 июля 2009

Я сталкивался с этой проблемой раньше. Я процитирую экспертов, чтобы не выдумывать это: "... внутренний объект абсолютно расположен на половине высоты области. Затем перемещается на половину его высоты."

Все это можно сделать с% вместо точных пикселей, если данные генерируются из базы данных, а высота изменяется для каждой страницы.

Источник: здесь

Демо: ссылка на страницу выше

Вот мой первый ответ ...

0 голосов
/ 09 июля 2009

Вы пробовали вертикальное выравнивание: среднее;

...