2014-09-09 2 views
0

У меня есть полная обертка ширины. Внутри него есть еще один div, установленный как display: table.Центрирование дисплея: таблица div

Я установил обертку как text-align: center, но таблица div не центрируется. Почему это? Что мне здесь не хватает, чтобы центрировать display: table div горизонтально внутри обертки?

See JsFiddle here

<div class="wrapper"> 
    <div class="tb"> 
     <div class="tb-cell">1</div> 
     <div class="tb-cell">2</div> 
     <div class="tb-cell">3</div> 
    </div> 
</div> 

CSS:

.wrapper { 
    width: 100%; 
    background: #E0E0E0; 
    text-align: center; 
} 

.tb { 
    display: table; 
    width: 100px; 
    background: silver; 
} 

.tb-cell { 
    display: table-cell; 
} 

ответ

2

Проблема заключается в том, что

text-align CSS свойство описывает, как строковое содержимое, как текст выравнивается в его родительский элемент блока.

Тогда он не может центрировать элемент с display: table, потому что это не встроенный контент.

Но вы можете использовать inline-table вместо:

.tb { 
    display: inline-table; 
} 

Demo

+0

Спасибо ... Мой главный интерес был зная, почему это не сработало, и этот ответ ined ... Пометка как правильная, как только я могу ... – LcSalazar

+0

Просто обратите внимание, что 'inline-table' поддерживается в современных браузерах и IE9 +, для IE8 требуется DOCTYPE, и он не поддерживается в IE7 и ранее – LcSalazar

+2

@LcSalazar Да, не работает на старый IE, но я думаю, что то же самое относится и к «table» и «table-cell». – Oriol

3

Добавьте к этому классу:

.tb { 
    display: table; 
    width: 100px; 
    background: silver; 
    margin: auto; 
    overflow: hidden; 
} 

Демо: http://jsfiddle.net/gpq95d26/3/

+0

Спасибо! Я буду отмечать ответ Ориола как правильный, потому что мой главный интерес был знаком с тем, почему он не работает ... Но +1 для вашего решения имеет большую совместимость. – LcSalazar

+0

Конечно! Рад, что смог помочь. :) – Jacob

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