table 没有垂直居中

table中同时有文字和input时,文字就不居中了,有稍微的偏差,并且在不同浏览器中表现不一致(忽略我的错误单词。。。)。

clipboard.png
可以看到000和000在chrome和ie中明显不在一条线上。

<table>
    <tr>
        <td>000</td>
        <td>000 <input type="text">34555</td>
    </tr>
</table>
input{hieght:30px}
阅读 3.9k
5 个回答
input{vertical-align:bottom}

给你分析下原因,因为td默认的vertical-align是'middle',里面的内容都会按其全部行的高度的一半和td的一半对齐。
因为有个很高的input,左右两边的高度不一样,这样在内容被居中时,左边就相当于居中对齐,右边的文字是基线对齐。也就是说让右边的文字居中对齐就可以了。比如给右边文字外面加一层标签设置vertical-align:middle

我喜欢这样写

000 000 <input type="text">34555 222

td{
line-height:40px;
}
input{
height:30px;
}

给css里面加 transform: translateY(-50%); 使元素垂直居中

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题