2009-07-09 2 views
13

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

Благодаря

+0

Вертикально выравнивание по отношению к чему? –

ответ

12

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

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

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

0

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

+1

Это не делает то, что вы думаете о не-табличных или плавающих элементах. Это выравнивает встроенные элементы вместе. –

10
<div style="display: table-cell; vertical-align: middle;">I'm in the middle!</div> 
+1

Не работает в IE6/IE7 :( – JerSchneid

+0

Не работает на плавающих элементах – 0lukasz0

2

Я столкнулся с этой проблемой раньше. Я процитирую экспертов, поэтому я не выдумываю это: «... внутренний объект абсолютно расположен на половине высоты, а затем поднимается на половину высоты».

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

Источник: here

Demo: связанный на указанной выше странице

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

Смежные вопросы