垂直放置在表格单元中的button,使用Twitter Bootstrap

我正在使用Twitter Bootstrap,并尝试将一个button居中在一个表格单元格中。 我只是真的需要它垂直居中。

<table class="table table-bordered table-condensed"> <tbody> <tr> <td><a href="#" class="btn btn-primary"><i class="icon-check icon-white"></i></a></td> <td><a href="#">Todo Item One</a><br /><span class="label label-success">One thing</span></td> </tr> </tbody> </table> 

请看我的JSFiddle的问题。 我已经尝试了一些我所知道的关于表格的技巧,但没有一个能够正常工作。 有任何想法吗? 提前致谢。

更新:是的,我试过vertical-align:middle; ,如果它是内联的,那么它就行得通,但是如果它在td的类中则不行。 更新了JSFiddle以反映这一点。

最终更新:我是一个白痴,并没有检查是否被bootstrap.css覆盖

FOR BOOTSTRAP 3.X:

Bootstrap现在对表格单元具有以下样式:

 .table tbody > tr > td{ vertical-align: top; } 

要走的路是添加你自己的类,给前面的select器增加更多的特性:

 .table tbody > tr > td.vert-aligned { vertical-align: middle; } 

然后将这个类添加到你的td

 <tr> <td class="vert-aligned"></td> ... </tr> 

对于BOOTSTRAP 2.X

Bootstrap 无法做到这一点 。

在表格单元格中使用时, 垂直alignment是大多数人所期望的,也就是模仿(旧的,不赞成使用的)valign属性。 在一个符合标准的现代浏览器中,以下三个代码片段可以做同样的事情:

 <td valign="middle"> <!-- but you shouldn't ever use valign --> </td> <td style="vertical-align:middle"> ... </td> <div style="display:table-cell; vertical-align:middle"> ... </div> 

检查你的小提琴更新

进一步

  • 垂直alignment:中间与Bootstrap 2
  • 了解垂直alignment
  • 元素在一个div中的垂直alignment

另外,你不能使用.vert来引用td类,因为Bootstrap已经有了这个类:

 .table td { padding: 8px; line-height: 20px; text-align: left; vertical-align: top; // The problem! border-top: 1px solid #dddddd; } 

并且在'.vert'类vertical-align: middle重载vertical-align: middle ,所以你必须把这个类定义为td.vert

Bootstrap 3的一个小更新。

Bootstrap现在对表格单元具有以下样式:

 .table tbody>tr>td { vertical-align: top; } 

要走的路是用相同的select器添加一个你自己的类:

 .table tbody>tr>td.vert-align { vertical-align: middle; } 

然后将其添加到您的tds

 <td class="vert-align"></td> 

添加到您的CSS

 .table-vcenter td { vertical-align: middle!important; } 

然后添加到您的表的类:

  <table class="table table-hover table-striped table-vcenter"> 

为了解决这个问题,我把这个类放在网页上

 <style> td.vcenter { vertical-align: middle !important; text-align: center !important; } </style> 

这在我的TemplateField

 <asp:TemplateField ItemStyle-CssClass="vcenter"> 

因为CSS类直接指向td(tabledata)元素,并在每个设置结束时具有!重要的语句。 它将超过规则bootsraps CSS类设置。

希望能帮助到你

添加vertical-align: middle; 到包含button的td元素

 <td style="vertical-align:middle;"> <--add this to center vertically <a href="#" class="btn btn-primary"> <i class="icon-check icon-white"></i> </a> </td> 

那么为什么td默认设置为vertical-align:top;? 我现在还不知道。 我不敢碰它。 相反,将其添加到您的样式表。 它改变了表中的button。

 table .btn{ vertical-align: top; }