【问题标题】:Different 100% height of table in Chrome/IE and FireFoxChrome/IE 和 FireFox 中不同的 100% 高度表
【发布时间】:2019-06-07 01:49:17
【问题描述】:

问题是,所有元素(主容器、表格容器和表格本身)都必须具有 100% 的高度。与 Firefox 相比,Chrome 和 IE 中的表格本身的尺寸略小,这会导致 .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:为示例添加边框间距和边框折叠。仍然无法正常工作。
Update3:现在它可以在这里工作,这意味着我无法完全重现我的错误以向您展示:(但总的来说,问题是, Chrome 中 5x5 表格的高度比 22px 上的 FF 更小,即表格容器和表格本身之间的 22px 间隙。在 Firefox 中,每个单元格大约有 4px + 到表格高度。

【问题讨论】:

    标签: html css html-table


    【解决方案1】:

    好像是桌子上的边框间距。

    将此 CSS 应用于表格元素:

    border-spacing: 0;
    

    【讨论】:

    • 不,将这两个添加到小提琴和代码中。没有帮助
    • 当border-collapse 设置为'collapse'时,Border-spacing 无效,仅在border-collapse 设置为separate 时使用!
    • 所以对于这个例子,你是对的,SpAm。但是麻烦仍然存在,我认为我不得不自己解决:)谢谢顺便说一句。
    【解决方案2】:

    请注意

    width: 100%;
    

    工作方式与

    完全不同
    height: 100%;
    

    会。

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

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

    【讨论】:

      【解决方案3】:

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

      table
      {
          **border-bottom: 1px solid black;**
          width: 100%;
          border-spacing: 0;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-18
        • 2011-08-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多