1

问题是,所有元素(主容器、表格容器和表格本身)都必须有 100% 的高度。与 Firefox 相比,Chrome 和 IE 中的表格本身的尺寸略小,这会导致 .table-container 和表格边框之间存在小间隙。

有人知道如何解决这个问题吗?我为此花了几乎一整天的时间,不能简单地找到解决方案。将不胜感激任何帮助。

这是我当前问题的小提琴链接:小提琴链接

<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:为示例添加了边框间距和边框折叠。仍然无法正常工作。
更新3:现在它在这里工作,这意味着我无法完全重现我的错误以向您展示:(但总的来说,问题是Chrome中5x5表格的高度比22px上的FF少,这是表格容器和表格本身之间的 22px 间隙。在 Firefox 中,每个单元格大约有 4px + 到表格高度。

4

3 回答 3

1

它似乎是桌子上的边框间距。

将此 CSS 应用于表格元素:

border-spacing: 0;
于 2013-04-23T12:34:26.670 回答
1

意识到

width: 100%;

工作方式不完全相同

height: 100%;

做。

虽然 width: 100% 抓取父级宽度的 100%,即使没有明确设置该宽度,但 height: 100% 仅适用于父级具有固定高度的元素。

简单来说,%-width 是动态应用的,而 %-height 是静态父容器的高度。

于 2014-06-16T19:22:18.670 回答
1

我来到这里是因为我在 Chrome 和 Firefox 的不同 100% 高度的桌子上遇到了同样的问题。解决方法是为表格添加边框。您也可以添加border-bottom,它实际上不会显示在Chrome中,但会解决高度问题。

table
{
    **border-bottom: 1px solid black;**
    width: 100%;
    border-spacing: 0;
}
于 2019-06-06T17:49:17.283 回答