问题是,所有元素(主容器,表容器和表本身)必须具有100%的高度。表格本身在Chrome和IE中的尺寸略小于Firefox,这会导致.table-container和表格边框之间的小差距。
有人知道如何解决这个问题吗?我花了差不多一整天的时间,不能简单地找到解决方案。将不胜感激任何帮助。
这是一个链接,用于摆弄当前的问题:fiddle link
<div class="container">
<div class="buttons">
<div></div>
<div></div>
<div></div>
<div></div>
</div>
<div class="table-container">
<table>
<thead>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
</thead>
<tbody>
<tr>
<td>a</td>
<td>b</td>
<td>c</td>
<td>d</td>
</tr>
<tr>
<td>aa</td>
<td>bb</td>
<td>cc</td>
<td>dd</td>
</tr>
<tr>
<td>aaa</td>
<td>bbb</td>
<td>ccc</td>
<td>ddd</td>
</tr>
</tbody>
</table>
</div>
</div>
和CSS:
html, body, .container, .table-container, table
{
height: 100%;
}
.container
{
display: block;
width: 500px;
margin: 0 auto;
text-align: center;
}
.table-container
{
width: 100%;
border: 1px solid red;
padding-top: 30px;
margin-top: -30px;
}
.buttons
{
height: 30px;
}
.buttons div
{
box-sizing: border-box;
-moz-box-sizing: border-box;
width: 25%;
float: left;
height: 30px;
border: 1px solid black;
}
table
{
border: 1px solid black;
width: 100%;
border-spacing: 0;
}
thead td, tbody td
{
width: 25%;
height: 25%;
}
更新:为.table-container
添加了填充和负余量
Update2 :在示例中添加了border-spacing和border-collapse。仍然无法正常工作。
Update3 :现在它可以在这里运行,这意味着,我无法完全重现我的错误以向您显示:(但一般来说,问题是,Chrome中5x5表的高度是22px上的FF较少,表容器和表本身之间的差距为22px。每个单元格在Firefox中的表格高度约为4px +。
答案 0 :(得分:1)
它似乎是桌子上的边框间距。
将此CSS应用于表元素:
border-spacing: 0;
答案 1 :(得分:1)
请注意
width: 100%;
与
完全不同height: 100%;
确实
虽然宽度:100%抓取100%的父宽度,即使没有明确设置该宽度,高度:100%仅适用于父级具有固定高度的元素。
简单来说,%-width动态应用,而%-height适用于静态父容器的高度。
答案 2 :(得分:0)
我之所以来到这里,是因为我在Chrome和Firefox的桌面高度不同时遇到相同的问题。解决方法是在表格中添加边框。您也可以只添加border-bottom-bottom,它实际上不会显示在Chrome中,但可以解决高度问题。
table
{
**border-bottom: 1px solid black;**
width: 100%;
border-spacing: 0;
}