改变桌面高度并保持内部元素居中

时间:2016-07-18 17:06:30

标签: css twitter-bootstrap

tr的css导致内部元素不再居中(你可以在示例中看到它们太高了)。我该怎么解决这个问题?

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>john@example.com</td>
      </tr>
      <tr>
        <td>Mary</td>
        <td>Moe</td>
        <td>mary@example.com</td>
      </tr>
      <tr>
        <td>July</td>
        <td>Dooley</td>
        <td>july@example.com</td>
      </tr>
    </tbody>
  </table>
</div>

3 个答案:

答案 0 :(得分:1)

我相信你的问题是因为你的垂直对齐是从bootstrap设置的。

例如,如果要将其添加到CSS中:

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

您会发现文本已在50px行中垂直居中。只有当您的行中有足够大的空间以允许文本将房间偏向一侧或另一侧时,问题才会变得明显。

注意:!important声明仅用于解决特异性问题。您始终可以添加类和/或ID以允许设置更具体的规则,从而有效地覆盖来自引导程序的默认样式。

设置

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>john@example.com</td>
      </tr>
      <tr>
        <td>Mary</td>
        <td>Moe</td>
        <td>mary@example.com</td>
      </tr>
      <tr>
        <td>July</td>
        <td>Dooley</td>
        <td>july@example.com</td>
      </tr>
    </tbody>
  </table>
</div>

答案 1 :(得分:1)

只是做:

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

如你所见:

&#13;
&#13;
td {
  height: 100px;
  vertical-align:middle !important;
}
&#13;
<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>john@example.com</td>
      </tr>
      <tr>
        <td>Mary</td>
        <td>Moe</td>
        <td>mary@example.com</td>
      </tr>
      <tr>
        <td>July</td>
        <td>Dooley</td>
        <td>july@example.com</td>
      </tr>
    </tbody>
  </table>
</div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

尝试使用line-height它应该使您的文字居中,而不需要!importent

&#13;
&#13;
tr > td {
   height: 50px;
   line-height: 50px;
}
&#13;
<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>john@example.com</td>
      </tr>
      <tr>
        <td>Mary</td>
        <td>Moe</td>
        <td>mary@example.com</td>
      </tr>
      <tr>
        <td>July</td>
        <td>Dooley</td>
        <td>july@example.com</td>
      </tr>
    </tbody>
  </table>
</div>
&#13;
&#13;
&#13;