2016-07-18 3 views
0

Css для tr заставляет элементы внутри больше не центрироваться (вы можете видеть в примере, что они слишком высоки). Как мне это исправить? изменение высоты стола и поддержание внутренних элементов в центре

tr { 
 
height: 50px}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/> 
 
<div class="container"> 
 
    
 
    <table class="table"> 
 
    <thead> 
 
     <tr> 
 
     <th>Firstname</th> 
 
     <th>Lastname</th> 
 
     <th>Email</th> 
 
     </tr> 
 
    </thead> 
 
    <tbody> 
 
     <tr> 
 
     <td>John</td> 
 
     <td>Doe</td> 
 
     <td>[email protected]</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Mary</td> 
 
     <td>Moe</td> 
 
     <td>[email protected]</td> 
 
     </tr> 
 
     <tr> 
 
     <td>July</td> 
 
     <td>Dooley</td> 
 
     <td>[email protected]</td> 
 
     </tr> 
 
    </tbody> 
 
    </table> 
 
</div>

+0

Вам нужен текст в таблице, который будет центрирован ... – vignesh

ответ

1

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

Если вы должны были добавить это, к примеру, ваш CSS:

td, th{ 
    vertical-align:middle !important; 
     } 

Вы обнаружите, что ваш текст был центрирован в пределах 50px строк. Проблема становится очевидной только тогда, когда ваши ряды располагают достаточно большим пространством, чтобы текст мог смещаться в сторону одной или другой стороны.

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

Установка

tr { 
height: 50px 
vertical-align:middle} 

не будет работать, просто из-за специфики и тот факт, что TD элементы/TH требуется свойство в этом контексте.

Вот демо: http://codepen.io/anon/pen/QEQgdo

Вот StackOverflow фрагмент:

tr { 
 
height: 50px} 
 

 
td, th{ 
 
vertical-align:middle !important;}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/> 
 
<div class="container"> 
 
    
 
    <table class="table"> 
 
    <thead> 
 
     <tr> 
 
     <th>Firstname</th> 
 
     <th>Lastname</th> 
 
     <th>Email</th> 
 
     </tr> 
 
    </thead> 
 
    <tbody> 
 
     <tr> 
 
     <td>John</td> 
 
     <td>Doe</td> 
 
     <td>[email protected]</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Mary</td> 
 
     <td>Moe</td> 
 
     <td>[email protected]</td> 
 
     </tr> 
 
     <tr> 
 
     <td>July</td> 
 
     <td>Dooley</td> 
 
     <td>[email protected]</td> 
 
     </tr> 
 
    </tbody> 
 
    </table> 
 
</div>

+0

спасибо за ответ. Можете ли вы объяснить эту вещь немного больше? – nachime

0

Попробуйте использовать line-height он должен центрировать текст без необходимости !importent.

tr > td { 
 
    height: 50px; 
 
    line-height: 50px; 
 
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/> 
 
<div class="container"> 
 
    
 
    <table class="table"> 
 
    <thead> 
 
     <tr> 
 
     <th>Firstname</th> 
 
     <th>Lastname</th> 
 
     <th>Email</th> 
 
     </tr> 
 
    </thead> 
 
    <tbody> 
 
     <tr> 
 
     <td>John</td> 
 
     <td>Doe</td> 
 
     <td>[email protected]</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Mary</td> 
 
     <td>Moe</td> 
 
     <td>[email protected]</td> 
 
     </tr> 
 
     <tr> 
 
     <td>July</td> 
 
     <td>Dooley</td> 
 
     <td>[email protected]</td> 
 
     </tr> 
 
    </tbody> 
 
    </table> 
 
</div>

+0

Это создаст проблемы с макетом таблицы, если данные в любой ячейке разбиваются на несколько строк. – Shaggy

1

Вобще:

td { 
    height: 100px; 
    vertical-align:middle !important; 
} 

Как вы можете видеть:

td { 
 
    height: 100px; 
 
    vertical-align:middle !important; 
 
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/> 
 
<div class="container"> 
 
    
 
    <table class="table"> 
 
    <thead> 
 
     <tr> 
 
     <th>Firstname</th> 
 
     <th>Lastname</th> 
 
     <th>Email</th> 
 
     </tr> 
 
    </thead> 
 
    <tbody> 
 
     <tr> 
 
     <td>John</td> 
 
     <td>Doe</td> 
 
     <td>[email protected]</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Mary</td> 
 
     <td>Moe</td> 
 
     <td>[email protected]</td> 
 
     </tr> 
 
     <tr> 
 
     <td>July</td> 
 
     <td>Dooley</td> 
 
     <td>[email protected]</td> 
 
     </tr> 
 
    </tbody> 
 
    </table> 
 
</div>

+0

нет способ сделать это без! Важное? – nachime

+0

@nachime, я думаю, что это способ, который помогает преодолеть «vertical-align: top;», установленный bootstrap. –